3

ここで、プレビュー中にCameraPreview用の1つのカメラアプリケーションを開発し、メール送信用に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 が 2 回破棄されます。

助けてください、よろしくお願いします。

4

0 に答える 0