У меня есть одно приложение Activity
с контейнером данных, который заполняется при запуске приложения из частного текстового файла в формате JSON. При выходе из приложения, будь то изящный выход или принудительный, данные должны быть записаны обратно в текстовый файл.
Документация для Android указывает, что данные приложения не должны сохраняться в методе onDestroy.
Теперь я перезаписал следующие методы, чтобы убедиться, что данные хранятся при выходе:
protected void onStop() {
persistenceManager.storeIfChanged();
super.onStop();
}
protected void onPause() {
persistenceManager.storeIfChanged();
super.onPause();
}
Методы storeIfChanged
записывают данные приложения в текстовый файл, если он изменился с момента последнего сохранения. Мой вопрос, гарантирует ли это, что данные приложения сохраняются независимо от того, как приложение прекращается (если это не форс-мажор). Во-вторых,, излишне делать сохранение как в onStop, так и onPause?
Да, сохранение данных в onPause
является рекомендуемым способом. Данные всегда будут сохранены, если приложение не будет принудительно закрыто.
Вызов его в onPause
достаточно, onPause
всегда вызывается до onStop
.