Мне было интересно, когда подходящее время для сохранения наших настроек приложения в SharedPreferences. Должны ли мы делать это во время onStop
или onDestroy
? Я понимаю, что оба метода имеют свои плюсы и минусы.
Если пользовательское намерение не прекращает работу приложения, сохраните настройки приложения в SharedPreferences, просто кажется излишним. Он просто нажимает домой (onStop called) -> долгое нажатие на главную -> возобновляет приложение, снова выберите приложение
Пользователь может убить приложение, нажав на кнопку home (onStop called) -> long press home -> проведите по экрану слева от приложения, чтобы убить его . Если пользователь onDestroy
приложение таким образом, я понимаю, что onDestroy
не вызывается, хотя приложение убито . Следовательно, настройки приложения не сохраняются.
Итак, лучше ли сохранять настройки приложения во время onStop
или onDestroy
?
Лучше всего вызывать commit()
либо сразу после внесения изменений, либо в метод onPause()
. Это гарантирует, что ваши изменения будут сохранены практически во всех сценариях, за исключением исключенных исключений, которые разбивают ваше приложение.
Кроме того, вы должны заметить, что ни onStop()
ни onDestroy()
будет гарантированно вызываться вообще, особенно в ситуациях, когда Android остается низким в памяти. Однако onPause()
почти всегда вызывается.
Я думаю, что документация на Android объясняет очень многое, когда вы должны отправлять или сохранять любые данные от пользователя:
OnPause () – это то, где вы имеете дело с пользователем, покидающим вашу деятельность. Самое главное, что любые изменения, сделанные пользователем, должны быть выполнены на этом этапе (обычно для ContentProvider, содержащего данные).
http://developer.android.com/reference/android/app/Activity.html