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