3

在这里,我在预览期间为 CameraPreview 开发了一个相机应用程序,我打开 IntentChooser 对话框进行邮件发送,但问题是当我没有选择任何选项并按下设备的后退按钮时,我的 CameraPreview 显示黑屏但在记录一些行打印。没有任何错误发生,但预览显示黑屏。

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

            System.out.println("==== Actvity RESUME ====");     

            previewing = true;

            autoFocusHandler = new Handler();
            mCamera = Camera.open();

            /* Instance barcode scanner */
            scanner = new ImageScanner();
            scanner.setConfig(0, Config.X_DENSITY, 3);
            scanner.setConfig(0, Config.Y_DENSITY, 3);

            mPreview = new CameraPreview(this, mCamera, previewCb, autoFocusCB);
            preview = (FrameLayout)findViewById(R.id.cameraPreview);
            preview.addView(mPreview);  

        }
        catch (Exception ex) 
        {
            ex.printStackTrace();
        }
    }


public void onPause() 
{
    try
    {
        super.onPause();

        System.out.println("==== Actvity PAUSE ====");


        releaseCamera();
    }
    catch (Exception ex) 
    {
        ex.printStackTrace();
    }
}

@Override
protected void onDestroy() 
{
    // TODO Auto-generated method stub
    super.onDestroy();

    System.out.println("==== Actvity DESTROY ====");

    releaseCamera();
    //mCamera.release();
}

private void releaseCamera() 
{
    if (mCamera != null) 
    {
        previewing = false;
        mCamera.setPreviewCallback(null);
        mCamera.release();
        mCamera = null;
    }
}

在这里,我的表面 ID 被破坏了两次。

请帮助我,在此先感谢。

4

0 回答 0