I have three actions
MessagesAttachPhotoActivityMessageGalleryFolderSelectorActivityImagePickerActivity
MessagesAttachPhotoActivity calls MessageGalleryFolderSelectorActivity using startActivityForResult() .
Operation
MessageGalleryFolderSelectorActivity displays the photo folders on the phone, and one selects the folder.
ImagePickerActivity then called using setActivityForResult() . When an image is selected from ImagePickerActivity , it returns to MessagesAttachPhotoActivity through MessageGalleryFolderSelectorActivity .
When I launch the application for the first time, everything works fine. However, if I try to select the image again, MessageGalleryFolderSelectorActivity will not close after setResult() .
I tried calling finish() , this.finish() , ((Activity)getApplicationContext()).finish() and super.onBackPressed() without success.
Why is activity not closing during successive launches?
Here is my code:
Call 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);
ImagePickerActivity:
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);
Passing data back to 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;
Trying to pass data back to the original call activity, but this action does not close 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) { } }