21 октября 2014 г.

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

FLAG_ACTIVITY_TASK_ON_HOME – если при запуске Активности используется этот флаг, то задача вызываемой Активности будет располагаться сразу после экрана ДОМ. Если из этой новой задачи выходить кнопкой Назад, то попадешь не в предыдущую задачу, а в экран ДОМ.

Этот флаг так же появился с API Level 11 и используется совместно с флагом FLAG_ACTIVITY_NEW_TASK.

Приложение АР0003 снова мутировало. В Активность В была добавлена кнопка запуска Активности В из приложения АР0004 с данными флагами.

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

OH0001

Запускаем Активность В

OH0002

Жмем кнопку Act B AP0004 OnHome

OH0003

Активность В приложения АР0004 была запущена в задаче 77, что собственно и правильно. Теперь жмем кнопку ОБРАТНО

OH0004

И попадаем на домашний экран, а не в приложение АР0003, как это происходит обычно.

Сейчас разберем еще один вариант работы этих флагов, чтобы лучше усвоить их работу.

Помним что приложение АР0003 у нас все еще работает.

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

OH0005

Запускаем Активность В и вводим там любой текст

OH0006

И далее стартуем Активность С

OH0007

Теперь стек задачи 78 содержит ТРИ Активности и имеет вид А-В-С. Жмем Info

OH0008

Все так и есть. Кроме того видим что в памяти у нас работает и приложение АР0003.

Сейчас в приложении АР0004 жмем кнопку ДОМОЙ и переключаемся в приложение АР0003

OH0009

И жмем Act B AP0004 OnHome

OH0010

Мы видим что была создан НОВЫЙ экземпляр Активности В в задаче 78. То есть стек задачи 78 сейчас содержит ЧЕТЫРЕ Активности и имеет вид А-В-С-В. Жмем Info

OH0011

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

OH0012

И попадаем в Активность С задачи 78. То есть произошло переключение на стек задачи 78. Это влияние работы флага FLAG_ACTIVITY_NEW_TASK.

Жмем кнопку ОБРАТНО еще раз

OH0013

И вот наш экземпляр Активности В где мы ввели свой текст

Жмем ОБРАТНО еще раз

OH0014

Попали в Активность А

И теперь еще раз ОБРАТНО

OH0004

Попали на домашний экран. Это уже влияние флага FLAG_ACTIVITY_TASK_ON_HOME.

На этом с этими флагами все.

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

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