30 сентября 2014 г.

Задачи и обратный стек (Tasks and back stack). Часть 28 (практика)

Это так сказать частный случай предыдущего поста.

В прошлом примере приложение АР0004 не было запущено. В этот раз мы сперва запустим приложение АР0004. А потом уже АР0003 и посмотрим поведение Активности Е.

Запускаем приложение АР0004

TA0001

Запоминаем таск 62 и что в нем ОДНА Активность А.

Жмем кнопку HOME и запускаем приложение АР0003

TA0002

Теперь жмем кнопку Start Activity E. И помним что родная задача АР0004 для этой Активности уже есть в памяти.

TA0003

Видим что все равно Активность была запущена в задаче 63, то есть в той из которой была запущена. И стек задачи 63 сейчас содержит две Активности А и Е.

Введем какой-нибудь текст

TA0004

Теперь жмем кнопку HOME и переходим (запускаем) в приложение АР0004

TA0005

Как видим приложение АР0004 открылось на Активности Е, так как она перешла в задачу 62 из задачи 63 и сейчас находится на вершине стека задачи 62.

Посмотрим логи

TA0006

Теперь стек задачи 63 содержит ОДНУ Активность А, а стек задачи 62 ДВЕ Активности А и Е.

Нажмем Info чтобы убедиться

TA0007

Так и есть. То есть мы убедились что даже при наличии родной задачи в памяти, Активность Е была все равно запущена в той задаче из которой ее запустили и перешла в задачу определенную в taskAffinity только после того, как эта задача получила фокус и вышла на передний план.

Выходим из обоих приложений и тестируем следующий вариант.

Комментариев нет:

Отправить комментарий