2 октября 2014 г.

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

Приведем пример работы атрибута Активности finishOnTaskLaunch.

Для этого в приложение АР0003 добавил Активность Н и установил для нее атрибут finishOnTaskLaunch=”true”. В Активность В данного приложения добавил кнопку запуска Активности Н.

И так запускаем приложение АР0003 и затем запускаем Активность В

ST0001

ST0002

И далее жмем Start Activity H

ST0003

И так в стеке задачи 95 у нас сейчас ТРИ Активности и он имеет вид A-B-H.

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

ST0004

Видим последовательный запуск трех активностей

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

ST0005

Теперь жмем кнопку HOME и смотрим логи

ST0006

Как видим работа Активности Н была приостановлена. Это происходит всегда, то есть это обычное поведение.

Теперь обратно возвращаемся в приложение АР0003 и попадаем в Активность В

ST0007

Так как Активность Н была разрушена в следствии работы параметра finishOnTaskLaunch=”true”. Но разрушена она была именно во время возврата (запуска) к приложению АР0003.

Смотрим логи

ST0008 

И видим что Активность Н была разрушена во время возврата (запуска) к приложению АР0003.

Теперь стек задачи 95 содержит ДВЕ Активности и имеет вид А-В. Нажмем Info чтобы убедиться

ST0009

Жмем два раза ОБРАТНО и выходим из приложения АР0003.

На этом разбор данного примера можно закончить. Стоит только упомянуть, что даже если Активность с данным параметром находится не на вершине стека, то она все равно будет уничтожена во время выхода задачи на передний план.

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

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