FLAG_ACTIVITY_REORDER_TO_FRONT и запускActivityForResult - PullRequest
4 голосов
/ 03 марта 2011

Задание A запускается B с использованием startActivityForResult, а B запускается C с использованием startActivity.После этого стеком активности является AB C.

Теперь предположим, что C выполняет вызов startActivity для B с использованием флага FLAG_ACTIVITY_REORDER_TO_FRONT, затем стек активности станет AC B.

Теперь мой вопросесли B завершит сам, будет ли вызвана onActivityResult () в A из-за выхода B?

Спасибо.

1 Ответ

5 голосов
/ 03 марта 2011

Судя по документации для finish () :

Позвоните, когда ваша деятельность будет завершена и должна быть закрыта.ActivityResult передается обратно тому, кто запустил вас через onActivityResult ().

Это заставляет меня поверить, что A получит результат B, даже если C находится между этими двумя.

Редактировать - после некоторого тестирования я обнаружил некоторые интересные взаимодействия здесь.

Порядок событий после некоторой регистрации:

  1. A начался
  2. Bначалось
  3. C началось
  4. B возобновлено (с FLAG_ACTIVITY_BRING_TO_FRONT)
  5. B закончено
  6. C возобновлено (было ниже B)
  7. C закончено
  8. A возобновляется и получает результат B

Другими словами, A получает результат B, как и ожидалось, но это происходит после завершения C и возобновления A.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...