Рассмотрим работу флага запуска Активности FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET. Данный флаг помечает вызываемую Активность так, что следующем вызове задачи из домашнего экрана, эта Активность и все вышерасположенные будут закрыты. В качестве примера можно привести почтовую программу. Вы открываете письмо, щелкаете на вложение и переходите в некую программу просмотра вложения. Затем сворачиваете приложение. Когда вы в следующий раз запустите почту, вы увидите верхнюю Активность задачи, т.е. просмотр вложения. А если вызывать просмотр вложения с вышеуказанным флагом, то при следующем запуске почты просмотр вложения будет закрыт и вы увидите письмо.
Приложение АР0003 пережило очередной этап эволюции. В Активность С добавлена кнопка запуска Активности В из приложения АР0004 с данным флагом.
Запускаем приложение АР0003
Запускаем Активность В
И затем С
Теперь стек задачи 92 содержит ТРИ Активности и имеет вид А-В-С. Жмем кнопку Start Activity B AP0004 CLEAR_WHEN_TASK_RESET.
Теперь стек задачи 92 содержит ЧЕТЫРЕ Активности и имеет вид А-В-С-В. Причем первые три Активности принадлежат приложению АР0003 и последняя, верхняя Активность В приложению АР0004.
Далее запускаем последовательно Активности С и D.
Теперь стек задачи 92 содержит ШЕСТЬ Активностей и имеет вид А-В-С-В-С-D. Причем первые три принадлежат приложению АР0003 и вторые три приложению АР0004. Нажмем Info чтобы в этом убедиться.
Теперь жмем кнопку ДОМОЙ и снова запускаем приложение АР0003 с домашнего экрана
Мы видим нашу Активность С из которой мы запускали Активность В приложения АР0004. Это произошло потому, что все верхние Активности начиная с В были уничтожены. В следствии работы флага FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET.
Посмотрим логи
Из логов видно, что во время вызова приложения АР0003 произошло уничтожение Активностей В, С и D приложения АР0004.
И теперь задача 92 содержит снова ТРИ Активности и стек имеет вид А-В-С. Все три Активности принадлежат приложению АР0003.
Нажмем Info чтобы убедиться
На этом с этим флагом все.
Комментариев нет:
Отправить комментарий