Android Picturecallback在某些设备中从未触发

Android Picturecallback在某些设备中从未触发,android,android-camera,android-2.3-gingerbread,Android,Android Camera,Android 2.3 Gingerbread,单击捕获按钮,首先启动progressdialog,然后调用PictureCallback。在回调中,我关闭对话框。但该对话框永远不会被取消,因此不会触发回调 captureImageButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mProgre

单击捕获按钮,首先启动progressdialog,然后调用PictureCallback。在回调中,我关闭对话框。但该对话框永远不会被取消,因此不会触发回调

captureImageButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (mProgressDialog != null) {
                        mProgressDialog.setTitle("Please wait");
                        mProgressDialog.show();
                    }
                    captureImageButton.setEnabled(false);

                    if (CameraConfigurationUtils.mCameraInstance != null) {
                        CameraConfigurationUtils.mCameraInstance.takePicture(null, null, mJPEGPictureCallback);
                    }
                }
            });


private Camera.PictureCallback mJPEGPictureCallback = new Camera.PictureCallback() {

    @Override
    public void onPictureTaken(byte[] data, Camera camera) {
        CameraConfigurationUtils.releaseCamera();
        Log.e("DEBUG", "THis is picture call back");
        if (mProgressDialog != null && mProgressDialog.isShowing()) {
            mProgressDialog.dismiss();
        }
        ProcessImageAsyncTask processImageAsyncTask = new ProcessImageAsyncTask(CameraActivity.this);
   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
            processImageAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, data);
        else
            processImageAsyncTask.execute(data);
    }

对话框没有被取消与回调有什么关系。当显示对话框时,工作流不会停止。即使在对话框上调用了
show
,您的代码仍会继续。我已添加了回调代码。我正在取消回调中的对话框。因此可能由于某些原因,
CameraConfigurationUtils.mCameraInstance
为null不为null。我调试了它。