Сохранить android.app. Состояние приложения

1

У меня возникла проблема с использованием моего собственного подкласса android.app.Application. У меня есть множество действий в моем приложении, и я запускаю пользовательский ПЗУ, который потребляет довольно много памяти. Что происходит, когда я запускаю действие третьей стороны (Камера), мое приложение убито. Подкласс My Application хранит жизненно важные данные для всего приложения, поэтому он не может работать без него. android.app.Application не имеет методов сохранения или восстановления состояния приложения. У них есть действия, но они не подходят.

Любые предположения о том, как выполнить сохранение/восстановление состояния подкласса Application?

UPDATE. Мне удалось это сделать, заполнив Bundle, полученный из onSaveInstanceState, и восстановив значения в onCreate. Но есть ли лучший способ?

Теги:
restore
savestate

1 ответ

0

Согласно http://developer.android.com/guide/topics/fundamentals.html

применительно к onCreate()

Вызывается, когда активность сначала создается. Здесь вы должны выполнить всю свою обычную статическую настройку - создать представления, привязать данные к спискам и т.д. Этот метод передается объект Bundle, содержащий предыдущее состояние активности, если это состояние было захвачено (см. Сохранение состояния активности, позже). Всегда следуют onStart().

применительно к onPause()

Вызывается, когда система вот-вот начнет возобновление другого действия. Этот метод обычно используется для переноса несохраненных изменений в постоянные данные, остановки анимаций и других вещей, которые могут потреблять процессор, и так далее. Он должен делать все, что он делает очень быстро, потому что следующее действие не будет возобновлено до тех пор, пока оно не вернется. За ним следует либо onResume(), если операция возвращается назад к фронту, либо onStop(), если она становится невидимой для пользователя.

Использование объектов Bundle - это то, как вы должны сохранять свое состояние в случае, если приложение было убито. Предполагается, что метод onPause() является сигналом для вашего приложения, что теперь он находится в состоянии, когда его можно убить, чтобы восстановить ресурсы. Метод onCreate() передается пакетом, чтобы он мог забрать, где ранее было остановлено приложение, чтобы обеспечить бесшовную работу пользователя, при этом позволяя системе убивать приложение, когда ему нужны ресурсы.

  • 0
    android.app.Application не является Activity .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню