Android Picturecallback在某些设备中从未触发
单击捕获按钮,首先启动progressdialog,然后调用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
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。我调试了它。