Когда устанавливать параметры приложения в SharedPreferences (onStop или onDestroy)

Мне было интересно, когда подходящее время для сохранения наших настроек приложения в SharedPreferences. Должны ли мы делать это во время onStop или onDestroy ? Я понимаю, что оба метода имеют свои плюсы и минусы.

OnStop

Если пользовательское намерение не прекращает работу приложения, сохраните настройки приложения в SharedPreferences, просто кажется излишним. Он просто нажимает домой (onStop called) -> долгое нажатие на главную -> возобновляет приложение, снова выберите приложение

OnDestroy

Пользователь может убить приложение, нажав на кнопку 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