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

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

Продолжаем нашу тему изучения taskAffinity.

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

TA0001

Запоминаем что наша задача 40 и жмем Start Activity G и вводим любой текст в поле

TA0002

Видим что Активность G была запущена в задаче 40 в которой сейчас две активности и стек имеет вид A-G.

Нажмем инфо чтобы в этом убедиться

TA0003

Все так и есть. Теперь жмем кнопку HOME и запускаем приложение АР0004

TA0004

Запоминаем номер задачи 41 и жмем кнопку Start G AP0003 и вводим текст в поле Активности G

TA0005

Теперь у нас две задачи 40 и 41. Стек каждой из них имеет содержит две Активности и имеет вид A-G. Только у задачи 40 все Активности принадлежат приложению АР0003, а у задачи 41 Активность А принадлежит приложению АР0004, а Активность G приложению АР0003.

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

TA0006

Все так и есть.

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

TA0007

И что мы видим. Нашу Активность G запущенную из приложения АР0004. Активность G перешла из стека задачи 41 в стек задачи 40. То есть стек задачи 40 сейчас содержит три Активности и имеет вид A-G-G. А стек задачи 41 содержит теперь одну Активность А.

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

TA0008

Жмем Info чтобы еще раз убедиться

TA0009

Все так и есть

Теперь жмем кнопку ОБРАТНО

TA0010

Вот наша Активность G которую мы запускали из приложения АР0003. Жмем еще раз ОБРАТНО

TA0011

И видим нашу Активность А в задаче 40. Теперь обе задачи 40 и 41 содержат по одной Активности А приложений АР0003 и АР0004.

В этом эксперименте мы увидели еще одну особенность поведения Активностей с параметрами taskAffinity и allowTaskReparenting.

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

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