要解决Android相机意图拍摄3张图片时销毁和重新创建片段,并在onActivityResult中崩溃的问题,可以按照以下步骤进行操作:
private int imageCount = 0;
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra("imageCount", imageCount);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
// 处理拍摄图片的结果
Bitmap photo = (Bitmap) data.getExtras().get("data");
// 保存图片逻辑
imageCount++;
// 检查图片数量是否已达到3张
if (imageCount == 3) {
// 进行下一步操作
} else {
// 继续拍摄下一张图片
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra("imageCount", imageCount);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
}
}
通过这种方式,在拍摄完每张图片后,都会检查imageCount的值,如果达到3张,则执行下一步操作;如果未达到3张,则继续启动相机意图拍摄下一张图片,并将更新后的imageCount值传递给相机意图。
这样就可以避免在拍摄完3张图片后销毁和重新创建片段,并且在onActivityResult中崩溃的问题。