Показаны сообщения с ярлыком FLAG_ACTIVITY_CLEAR_TASK. Показать все сообщения
Показаны сообщения с ярлыком FLAG_ACTIVITY_CLEAR_TASK. Показать все сообщения

21 октября 2014 г.

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

Теперь еще пройдемся по некоторым флагам запуска Активностей. Начнем с флага FLAG_ACTIVITY_CLEAR_TASK. Данный флаг используется в сочетании с флагом FLAG_ACTIVITY_NEW_TASK. Этот флаг появился c API Level 11. Задача вызываемой Активности будет очищена, а вызываемая Активность станет в ней корневой.

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

Запускаем приложение АР0004 и последовательно запускаем все Активности от А до D.

CT0001

CT0002

CT0003

CT0004

Теперь стек задачи 61 содержит ЧЕТЫРЕ Активности и имеет вид A-B-C-D. Жмем инфо чтобы убедиться.

CT0005

Далее жмем кнопку ДОМОЙ и запускаем приложение АР0003

CT0006

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

CT0007

И далее жмем кнопку Start Act C AP0004 ClearTask

CT0008

И так мы видим, что Активность С в задаче 61 была создана заново и сейчас в этой задаче всего одна Активность. Посмотрим логи.

CT0009

Мы видим что все Активности в задаче 61 были уничтожены, то есть стек этой задачи был очищен полностью, а затем был создан новый экземпляр Активности С, которую мы и вызывали. То есть из стека задачи 61 были удалены ВСЕ Активности.

Теперь стек задачи 61 содержит ОДНУ Активность С.

CT0010

На этом с этим флагом закончим.