Intereting Posts
Ориентировочная строка Android в файле string.xml ViewPager пропускает представления при возврате, оставляя пустое Не удалось добавить файл com.facebook.share.widget.Sharebutton в Layout XML Android Simulator: простой способ имитировать перезапуск процесса из-за низкой памяти? Сбой списка Listview в портретном режиме при нажатии на элементы (с использованием фрагментов) Параметры для каждого элемента списка Android Отключить / удалить текст Выберите Handle из EditText в Android Есть ли Lite SVG-просмотрщик для Android? Внедрить безопасность на уровне подписки на услуги Android с более чем одной разрешенной подписью Как сделать мобильное приложение для Android DLNA? Android – выпадающий список / выбор Spinner не показывает Как обрабатывать onActivityResult () с раствором Как создать уведомление, подобное приложению Play Music от Google Загрузите прогресс с помощью RxJava, OkHttp и Okio в Android Лучше использовать FragmentActivity (или ActionBarActivity) или системную активность при настройке min API 14 (ICS)?

Использование startActivityForResult для нескольких действий

Я использую startActivityForResult для двух видов деятельности, подобных этому

Activity A -> startActivityForResult(ActivityB,0) -> Activity B -> setresult(10); finish(); -> Activity A -> if(result==10) {dofunction(); } 

Но я должен использовать эту логику для 4 или более видов деятельности.

 Activity A -> startActivityForResult(ActivityB,0) -> Activity B -> finish(); -> Activity C -> finish(); -> Activity D -> setresult(10); finish(); -> Activity A -> if(result==10) {dofunction(); } 

Но это не работает.

РЕШЕНИЕ:

 Activity A -> startActivityForResult(activityB,0); Activity B -> activityCintent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); startActivity(activityCintent); finish(); Activity C -> activityDintent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); startActivity(activityDintent); finish(); Activity D -> setresult(10); finish(); Activity A -> if(result==10) {dofunction(); } YEPPP 

Это логика FLAG_ACTIVITY_FORWARD_RESULT. Сначала вы начинаете действие для результата, новая активность передает это намерение другому новому действию, пока вы не установите результат. Надеюсь, это будет полезно для тех, кто сталкивается с такой же проблемой.

После именования в startActivityForResult(ActivityB,0) мы выдаем код запроса для указанной активности, т.е. startActivityForResult(ActivityB,REQUEST_CODE_FOR_ACTIVITYB) . С кодом запроса, являющимся целым числом. Затем в onActivityResult проверяет каждый код запроса и реализует вашу логику