2011-02-09 3 views
4

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

Теперь 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?

Спасибо.

ответ

2

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

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

и C0 Начинается с Intent.FLAG_ACTIVITY_REORDER_TO_FRONT, экземпляр А1 на передний план и стек деятельности теперь выглядит следующим образом:

A0, B0, C0, A1 

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

Смежные вопросы