我有三个活动
MessagesAttachPhotoActivity
MessageGalleryFolderSelectorActivity
ImagePickerActivity
MessagesAttachPhotoActivity
调用. MessageGalleryFolderSelectorActivity
_startActivityForResult()
MessageGalleryFolderSelectorActivity
活动显示手机上的照片文件夹,然后选择一个文件夹。
ImagePickerActivity
然后用 调用setActivityForResult()
。从 中选择图像后ImagePickerActivity
,将其传递回MessagesAttachPhotoActivity
via MessageGalleryFolderSelectorActivity
。
当我第一次运行该应用程序时,一切正常。但是,如果我之后再次尝试选择图像,MessageGalleryFolderSelectorActivity
则不会在setResult()
.
我试过打电话,,,,但finish()
没有this.finish()
成功。((Activity)getApplicationContext()).finish()
super.onBackPressed()
为什么活动不会在连续运行时关闭?
这是我的代码:
调用 MessageGalleryFolderSelectorActivity:
Intent intent;
Bundle arguments = new Bundle();
Bundle bundle;
intent = new Intent(this, MessageGalleryFolderSelectorActivity.class);
bundle = new Bundle();
bundle.putInt(Constants.INTENT_EXTRA_LIMIT, Constants.IMAGES_SELECT_LIMIT);
bundle.putInt("Request", MessageThread.MessageType.IMAGE);
intent.putExtras(bundle);
startActivityForResult(intent, MessageThread.MessageType.IMAGE);
图像选择器活动:
imagesIntent.putExtra(ImagePickerActivity.INTENT_EXTRA_MODE,
ImagePickerActivity.MODE_MULTIPLE);
imagesIntent.putExtra(ImagePickerActivity.INTENT_EXTRA_LIMIT, 10);
imagesIntent.putExtra(ImagePickerActivity.INTENT_EXTRA_SHOW_CAMERA, false);
imagesIntent.putExtra(ImagePickerActivity.INTENT_EXTRA_ALBUM,album);
//imagesIntent.putExtra(ImagePickerActivity.INTENT_EXTRA_SELECTED_IMAGES, images);
startActivityForResult(imagesIntent, MessageThread.MessageType.IMAGE);
将数据传回 MessageGalleryFolderSelectorActivity:
Intent data = new Intent();
data.putParcelableArrayListExtra
(ImagePickerActivity.INTENT_EXTRA_SELECTED_IMAGES, selectedImages);
data.putExtra(ImagePickerActivity.INTENT_EXTRA_ALBUM,album);
setResult(RESULT_OK, data);
finish();
return true;
尝试将数据传递回初始调用活动,但此活动不会关闭 MessageGalleryFolderSelectorActivity:
@Override
protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
ArrayList<Image> selectedImages = data.getParcelableArrayListExtra
(ImagePickerActivity.INTENT_EXTRA_SELECTED_IMAGES);
String album = data.getStringExtra(ImagePickerActivity.INTENT_EXTRA_ALBUM);
Intent intent = new Intent();
intent.putExtra(ImagePickerActivity.INTENT_EXTRA_ALBUM, album);
intent.putParcelableArrayListExtra
(ImagePickerActivity.INTENT_EXTRA_SELECTED_IMAGES, selectedImages);
setResult(Activity.RESULT_OK, intent);
this.finish();
return;
} else if (resultCode == RESULT_CANCELED) {
}
}