如何在应用程序生命周期中处理相机闪光灯

时间:2014-03-26 07:53:18

标签: android camera camera-flash

我不知道如何在我的应用中处理相机闪光灯。 我的应用程序有一个按钮,可以打开和关闭相机闪光灯,一切正常,应用程序正常工作,即使按下后退按钮并返回应用程序也能正常工作。

但是当我在应用程序运行时按HOME按钮然后回到我的应用程序时,当我按下ON和OFF按钮时它会崩溃(强制关闭)。 我认为这个问题出现在应用程序的生命周期中,但我不知道如何修复它。

在onStop()方法中,我使用这段代码:

@Override
    protected void onStop() {
        super.onStop();

        if (camera != null) {
            camera.stopPreview();
            camera.release();
        }

使用以下代码打开onCreate()方法中的flash:

                Parameters p = camera.getParameters();
                if (!isLightOn) {
                    p.setFlashMode(Parameters.FLASH_MODE_TORCH);
                    camera.setParameters(p);
                    camera.startPreview();
                    isLightOn = true;
                                }

1 个答案:

答案 0 :(得分:2)

您需要覆盖活动的onResume方法。它看起来像这样:

@Override
protected void onResume() {
    super.onResume();

    if(camera == null){
        camera = getCamera();
        try {
            SurfaceHolder holder = cameraPreview.getHolder();
            camera.setPreviewDisplay(holder);

            cameraPreview.setCamera(camera);
            holder.addCallback(cameraPreview);

            camera.startPreview();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}