Главная » Разработка для Android » МЕТОДЫ ЖИЗНЕННОГО ЦИКЛА КЛАССА ACTIVITY

0

 

Теперь, разобравшись, когда и почему вообще вызываются методы жизненного цикла, рассмотрим отдельные методы из приведенного выше листинга.

Метод onCreate вызывается после создания экземпляра Activity. Именно здесь происходит большая часть инициализации основной массы приложений: считывание макетов в память и создание экземпляров View, связывание с данными и т. д. Обратите внимание: если данный экземпляр Actіvity не был разрушен, а процесс не был завершен, то этот метод больше не вызывается. Он вызывается только при создании нового экземпляра класса Actіvity. Аргументом для данного метода является объект Bundle, содержащий сохраненное состояние приложения. Если сохраненного состояния нет, то этот аргумент имеет значение null.

Метод onRestart вызывается только в том случае, если активность была остановлена. «Остановлена» – означает, что активность не находится на переднем плане и не взаимодействует с пользователем. Этот метод вызывается до метода onStart.

Метод onStart вызывается, когда объект Actіvity и его виды становятся видны пользователю.

Метод onResume вызывается, когда пользователь получает возможность взаимодействовать с объектом Actіvity и его видами.

Метод onPause вызывается перед тем, как Должен стать видимым другой экземпляр Activity, а актуальная Activity перестает взаимодействовать с пользователем.

Метод onStop вызывается, когда активность более невидима пользователю и он не может с ней взаимодействовать.

Метод onDestroy вызывается перед тем, как экземпляр Activity должен быть уничтожен, то есть снят с использования. Перед вызовом этого метода активность уже перестала взаимодействовать с пользователем и больше не отображается на экране. Если этот метод вызывается в результате вызова к finish, то вызов isFinishing возвратит true.

Сохранение и восстановление состояния экземпляра

Очистка памяти и жизненный цикл компонента – без этих этапов в работе никак не обойтись. Вот почему подклассы вашей Activity должны сохранять состояние. Ниже описано, как и когда это нужно делать.

Класс Bundl е существует для того, чтобы хранить в нем сериализованные данные в форме пар «ключ – значение». Данные могут относиться к примитивным типам или любому типу, реализующему интерфейс Parcelable. О классе Bundl е подробнее рассказано на сайте разработчиков Android по адресу http://developer. android.com/reference/android/os/Bundle.html. При сохранении состояния активности используются методы put класса Bundle.

При вызове методов onCreate и onRestorelnstanceState объект Bundle передается этому методу. Объект Bundle содержит данные, которые в него поместил предыдущий экземпляр того же класса Actіvity, чтобы информация о конкретной активности сохранялась между ее инстанцированиями. То есть если экземпляр Activity имеет состояние, не считая того, которое долговременно хранится в модели данных, это состояние можно сохранять, а затем восстанавливать в многочисленных экземплярах класса Activity. С точки зрения пользователя, он возвращается к работе с той самой активностью, от работы с которой пришлось оторваться, но фактически пользователь может видеть совершенно новый экземпляр класса Activity, возможно исполняемый в совершенно новом процессе.

Вероятно, вы заметили, что в жизненном цикле метода onPause не предоставляется объект Bundl е для сохранения состояния. Итак, когда сохраняется состояние? Существуют отдельные методы класса Activity, предназначенные для сохранения состояния, а также методы для уведомления о том, что состояние восстанавливается.

Здесь приложение получает возможность сохранить состояние экземпляра. Состояние экземпляра – это такое состояние, которое не сохраняется в долговременной памяти вместе с моделью данных приложения. Примером состояния экземпляра может быть, например, состояние индикатора или другого элемента, полностью входящего в состав объекта Activity. Этот метод имеет реализацию и в родительском классе: он вызывает метод onSavelnstanceState каждого объекта View в данном экземпляре Activity. В результате сохраняется состояние этих объектов View, и часто это единственное состояние, которое приходится сохранять таким образом. Данные, которые должен сохранить ваш подкласс, сохраняются при помощи методов put класса Bundle.

Метод onRestorelnstanceState вызывается, когда имеется состояние экземпляра, которое следует восстановить. Если этот метод вызывается, то такой вызов происходит после onStart и до onPostCreate, редко используемого метода жизненного цикла, описанного в пункте «Второстепенные методы жизненного цикла класса Activity» далее.

Источник: Android. Программирование на Java для нового поколения мобильных устройств

По теме:

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