Несколько экземпляров активности и FLAG_ACTIVITY_REORDER_TO_FRONT - PullRequest
5 голосов
/ 09 февраля 2011

Предположим, что у текущих стеков задач есть четыре экземпляра активности, A0, A1, B0, C0, с C0 на вершине стека. A0, A1 являются экземплярами Деятельности A, B0 является экземпляром Деятельности B, а C0 является экземпляром Деятельности C0.

Теперь C0 создает намерение с FLAG_ACTIVITY_REORDER_TO_FRONT и начинает действие A:

Intent intent = new Intent(this, A.class);
intent.setFlag(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);

Мой вопрос: какой экземпляр будет выведен на передний план, A0 или A1? Станут ли стеки заданий A0, B0, C0, A1 или A1, B0, C0, A0?

Спасибо.

1 Ответ

2 голосов
/ 14 ноября 2012

Эмпирические данные говорят о том, что он выводит самый последний экземпляр на передний план. В вашем примере, если стек действий начинается следующим образом:

 A0, A1, B0, C0 (front of task)

и C0 начинает A с Intent.FLAG_ACTIVITY_REORDER_TO_FRONT, экземпляр A1 перенесен на передний план, и стек активности теперь выглядит так:

A0, B0, C0, A1

Когда вы используете этот флаг, Android ищет экземпляр этого действия (начиная с начала задачи и сканируя ее до корня / корня задачи). Первый найденный экземпляр будет доставлен на фронт. Если он не найдет ни одного экземпляра в стеке действий, он создаст новый.

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