Главная » Разработка для Android » Состояния Активностей

0

Создавая объекты Activity,  система помещает их в стек, (см. рис. 3.6). При уничтожении эти объекты оттуда убираются,  проходя  через четыре возможных  состояния.

• Активное. Когда Активность на вершине  стека, она видна и выходит на передний  план, имея возможность принимать пользовательский ввод. Android  будет пытаться  любой ценой сохранить  ее в рабочем состоянии,  при необходимости прерывая  работу других Активностей, которые находятся на более низких позициях в стеке, обеспечивая для нее все необходимые ресурсы. Ее работа будет приостановлена, если на передний план выйдет другая Активность.

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

ности, что на переднем плане. При полном  исчезновении с экрана

Активность останавливается.

• Остановленное. Когда Активность перестает быть видимой, она оста- навливается и остается в памяти, сохраняя  всю информацию о сво- ем состоянии.  То есть становится кандидатом  на преждевременное закрытие,  если системе понадобится память для чего-нибудь дру- гого. При остановке Активности важно сохранить данные и текущее состояние пользовательского интерфейса. Как только объект Activity завершает  свою работу или закрывается, он становится неактив- ным.

• Неактивное. Это состояние наступает после того, как работа объекта Activity  была завершена,  и перед тем, как он будет запущен  снова. Такая Активность удаляется  из стека и должна запускаться повторно, чтобы ее можно было вывести на экран и снова использовать.

Смена состояний — недетерминированный процесс и полностью управ- ляется системным диспетчером памяти. Сперва Android закроет приложе- ния, содержащие объекты Activity в неактивном состоянии, потом перейдет к тем, чьи Активности остановлены или приостановлены (только  в крайних случаях).

ПРИМЕЧАНИЕ

Чтобы приложение вызывало целостное впечатление, пользователь не должен видеть процесс смены его состояний. Меняя свое состояние с приостановленного на остановленное или с неактивного на активное, объект Activity внешне не должен меняться. Поэтому при остановке или приостановлении работы Активности важно сохранять состояние поль- зовательского интерфейса и все данные. Как только Активность выходит на передний план, она должна восстановить все сохраненные значения.

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии