Возврат результата к предыдущему действию, которое не является последним действием - PullRequest
0 голосов
/ 13 мая 2011

startActivityForResult() и onActivityResult отлично работают, если задействованы только два вида деятельности.Но как я могу справиться с этим, если существует более двух видов деятельности?Пример: действие A запускает новое действие B, которое запускает действие C, которое запускает действие D. Я хочу вернуть результат D в действие A вместе с завершением действий B и C. Как я могу это сделать?Могу ли я пройтись по стеку действий и завершить требуемые действия, или я должен начать новый экземпляр действия A?

Для краткости: A-> B-> C-> D должен привести к A с помощьюрезультат Д.

Ответы [ 2 ]

2 голосов
/ 13 мая 2011

Возвращение к закрытию каждого действия было бы хорошим способом сделать что-то, но если вам нужно перейти от одного действия к другому и вы не используете TabHost, вы можете взглянуть на код переопределения APIDemo

Переход от действия (4-го) к предыдущему открытому (2-му) таким образом:

Intent intent = new Intent(ReorderFour.this, ReorderTwo.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
1 голос
/ 13 мая 2011

На мой взгляд, самый логичный способ - это взять на себя ответственность за деятельность.

  1. D возвращает d к C.
  2. C возвращает d и c к B.
  3. B возвращает b, c, d в A.

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

...