Главная » Разработка для Android » Сериализация и жизненный цикл приложения – Android

0

 

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

Тем не менее, чтобы пользователю было удобно работать, нужно гарантировать, что, когда пользователь вернется к приложению, работу с которым прервал, оно будет в том же виде, в котором пользователь его оставил. Задача сохранения состояния на то время, пока работа приостановлена, решается самим приложением. Приятно отметить, что во фреймворке Android сохранение состояния приложения устроено очень просто.

Пример в подразделе «Сериализация в Java» данного раздела демонстрирует общий механизм, действующий во фреймворке и позволяющий приложению сохранять состояние на время, пока работа с ним приостановлена. Всякий раз, когда приложение выгружается из памяти, вызывается его метод onSavelnstanceState с Bundle, куда приложение может записать любое необходимое состояние. Когда приложение перезапускается, фреймворк передает тот же Bundle методу onCreate, чтобы приложение могло восстановить свое состояние. Оптимально кэшируя контент в ContentProvider и сохраняя легкое состояние (например, видимую в данный момент страницу) в onSavelnstance Bund! е, приложение может вернуться к работе без каких-либо сложностей.

Во фреймворке есть еще один инструмент для сохранения состояния приложения. Класс View – базовый тип для всего, что мы видим на экране, – имеет перехватывающий метод (hook method) onSavelnstanceState, вызываемый в ходе процесса выгрузки приложения из памяти. На самом деле вызов осуществляется из Actіvity. onSavelnstanceState, поэтому реализация вашего метода в этом приложении всегда должна вызывать super. onSavelnstanceState.

Данный метод обеспечивает максимально точное сохранение состояния. Например, почтовое приложение может пользоваться данным методом для сохранения точного положения курсора в тексте черновика электронного сообщения.

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

По теме:

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