Сохранение состояния приложения - PullRequest
3 голосов
/ 11 января 2010

Как следует из моего вопроса о состоянии общего доступа между действиями , как я могу сохранить состояние экземпляра моего Приложения? Поскольку Application не расширяет Activity, нет способа onSaveInstanceState для переопределения.

Примечание: заранее, это не дубликат. Несмотря на название, Как сохранить состояние приложения Android? относится к состоянию активности

1 Ответ

4 голосов
/ 11 января 2010

Вы не можете использовать Application.onTerminate(), поскольку нет гарантии, что это будет вызвано.

По той же причине, по которой вы не можете использовать onStop() или onDestroy() из Activity.

Таким образом, вы должны будете сохранять данные в методе onPause() в каждом действии. Каждый Activity будет иметь вызов saveState(), который вы создали в своем Application. Поскольку это будет вызываться много раз, вам нужно будет сделать его максимально эффективным, в идеале - только запись измененных данных в постоянное хранилище.

Следует также отметить, что onSaveInstanceState() следует использовать только для хранения кратковременного состояния Activity. Например, если пользователь завершил Activity, нажатие кнопки Назад onSaveInstanceState() не вызывается. Поэтому, даже если у вас не было общего состояния, вы все равно должны использовать onPause() для сохранения постоянных изменений.

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