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

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

Прежде чем перейти к рассмотрению taskAffinity рассмотрим еще один частный случай работы флага FLAG_ACTIVITY_NEW_TASK. Так как этот случай тоже надо знать.

На данный момент приложения АР0003 и АР0004 притерпели множество мутаций, но о них чуть позже. Сейчас пока напомню что Активность D в приложении АР0004 имеет стандартный параметр запуска. А в Активности С есть кнопку запуска Активности D с флагом FLAG_ACTIVITY_NEW_TASK.

И так к практике! Запускаем АР0004 и последовательно запускаем Активности А-В-С

NT0001

NT0002

NT0003

Теперь запоминаем номер нашей задачи 14 и жмем кнопку Start D NewTask, которая запускает Активность D этого же приложения с флагом FLAG_ACTIVITY_NEW_TASK. И как бы из описания альма-матер предполагается что она будет запущена в новом таске, да не тут то было! Жмем

NT0004

И как видим Активность D была запущена в том же таске что и другие Активности. То есть Активность D НЕ БЫЛА запущена в новой задаче.

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

Нажмем для верности Info чтобы убедиться что у нас один таск 14 и Активность D находится на вершине стека этой задачи

NT0005

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

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