ここで、プレビュー中に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 回破棄されます。
助けてください、よろしくお願いします。