Продолжаем вольный перевод статьи из альма-матер.
Clearing the back stack
Если пользователь покинул задачу на долгое время, система очищает стек этой задачи от всех Активностей исключая корневую. Когда пользователь снова возвращается к этой задаче, то восстанавливается только корневая Активность. Такое поведение системы обусловлено тем, что если пользователь, долгое время не взаимодействовал с этой задачей, то, скорее всего, он просто забыл что делал до этого и вернулся в нее с какой-то новой целью.
Следующие атрибуты Активности могут изменить такое поведение системы.
- alwaysRetainTaskState – если данный атрибут установлен в значение “true” для корневой Активности задачи, то описанное выше поведение системы перестает работать. Задача сохраняет все Активности в стеке даже после продолжительного времени.
- clearTaskOnLaunch – если данный атрибут установлен в значение “true” для корневой Активности задачи, то стек очищается до корневой Активности сразу же после того, как пользователь покидает задачу. Иными словами это полная противоположность атрибуту alwaysRetainTaskState. Пользователь всегда возвращается в изначальное состояние задачи, даже если покидает ее только на мгновение.
- finishOnTaskLaunch – этот атрибут подобен атрибуту clearTaskOnLaunch, но может устанавливаться для любой Активности, а не на целую задачу. Он может удалять из стека любую Активность включая корневую. Когда этот атрибут установлен в значение “true”, Активность остается частью задачи только на время текущей сессии. Если пользователь покидает задачу и затем возвращается в нее, то этой Активности уже не будет в задаче.
На этом с теорией пока закончим и чуть попрактикуемся.
Комментариев нет:
Отправить комментарий