最近写个练习项目,关于相机使用,在开发中碰到了个问题,每次点击拍照按钮执行 myCamera.takePicture(null, null, null, jpegPic);这行代码后,自定义的
PictureCallback jpegPic = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Log.i("level", "pic take");
mbitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
String path = savePic(data);
gotoActivity(ConfirmActivity.class, path);
finish();
}
};
里面的回调方法,就是不执行。百思不得其结。在老师的帮助下,终于找到了答案,之前写的
gotoActivity(ConfirmActivity.class, path);
finish();
实在拍照按钮的onClick()方法里面,执行完myCamera.takePicture(null, null, null, jpegPic);紧接着执行gotoActivity(ConfirmActivity.class, path);
finish();导致回调方法无法被调用。自己理解应该是回调方法执行比较慢,当finish()窗口之后,回调方法还没来得及执行,最终导致了问题的发生。