Приведем пример работы атрибута Активности finishOnTaskLaunch.
Для этого в приложение АР0003 добавил Активность Н и установил для нее атрибут finishOnTaskLaunch=”true”. В Активность В данного приложения добавил кнопку запуска Активности Н.
И так запускаем приложение АР0003 и затем запускаем Активность В
И далее жмем Start Activity H
И так в стеке задачи 95 у нас сейчас ТРИ Активности и он имеет вид A-B-H.
Посмотрим лог
Видим последовательный запуск трех активностей
Нажмем Info чтобы еще раз убедиться
Теперь жмем кнопку HOME и смотрим логи
Как видим работа Активности Н была приостановлена. Это происходит всегда, то есть это обычное поведение.
Теперь обратно возвращаемся в приложение АР0003 и попадаем в Активность В
Так как Активность Н была разрушена в следствии работы параметра finishOnTaskLaunch=”true”. Но разрушена она была именно во время возврата (запуска) к приложению АР0003.
Смотрим логи
И видим что Активность Н была разрушена во время возврата (запуска) к приложению АР0003.
Теперь стек задачи 95 содержит ДВЕ Активности и имеет вид А-В. Нажмем Info чтобы убедиться
Жмем два раза ОБРАТНО и выходим из приложения АР0003.
На этом разбор данного примера можно закончить. Стоит только упомянуть, что даже если Активность с данным параметром находится не на вершине стека, то она все равно будет уничтожена во время выхода задачи на передний план.
Комментариев нет:
Отправить комментарий