Запуск действия для результата из другого действия, которое должно возвращать результат
У меня есть активность, которая запускает другую для результата. Дело в том, что мне нужно вызвать другое действие для результата из этого. Это возможно?
В качестве примера действие A вызывает действие B для результата, но действие B должно вызвать действие C для результата, чтобы получить правильные данные.
Я не знаю, если при запуске действия C для результата действие B отправит свой (неполный) результат первому вызову (мероприятие A).
В случае, если это можно сделать, как я должен обрабатывать результаты этих мероприятий?
Спасибо!
1 ответ
Это отлично. Пока действие B все еще выполняется, оно не будет запускать что-либо обратно к A, пока не завершится.
Запуск A -> B -> C, а затем закрытие C будет означать B onActivityResult
сработает, затем закрытие B сработает onActivityResult
,
Так что в Деятельности B вам понадобится некоторая логика вроде:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == ACTIVITY_C && resultCode == RESULT_XXX) {
// Get the result from C, etc. Whatever you need to do
String stuff = data.getStringExtra("XXX");
Intent output = new Intent();
output.putExtra(XXX, stuff);
setResult(RESULT_XXX, output);
finish();
}
}
Затем вы можете поймать это в упражнении А.
Другой вариант: если вам нужно обмениваться данными по многим действиям, а логика кажется сложной, вы можете рассмотреть возможность использования класса Application для хранения глобального состояния, к которому вы можете получить доступ из всех действий.