2 октября 2014 г.

Задачи и обратный стек (Tasks and back stack). Чистка обратного стека (Clearing the back stack). Часть 30 (теория)

Продолжаем вольный перевод статьи из альма-матер.

Clearing the back stack

Если пользователь покинул задачу на долгое время, система очищает стек этой задачи от всех Активностей исключая корневую. Когда пользователь снова возвращается к этой задаче, то восстанавливается только корневая Активность. Такое поведение системы обусловлено тем, что если пользователь, долгое время не взаимодействовал с этой задачей, то, скорее всего, он просто забыл что делал до этого и вернулся в нее с какой-то новой целью.

Следующие атрибуты Активности могут изменить такое поведение системы.

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

На этом с теорией пока закончим и чуть попрактикуемся.

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

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