Intereting Posts
Picasso – получить путь загруженного изображения Android: Как определить, сколько клиентов связано с сервисом? Android Broadcast Address Создание сложных элементов управления с помощью пользовательских атрибутов XML Как записывать телефонные звонки в Android? GcmNetworkManager OneoffTask ExecutionWindow необходимо? Как изменить цвет вкладок навигации ActionBar? Android Показать активность Заголовок / строка состояния вверху после того, как она скрыта Как найти лучший PixelFormat для Android SurfaceView Укажите элемент списка держателей, например, facebook для загрузки контента. Как установить прослушиватель в редакторе текста вида пользовательского списка в андроиде Статический класс Utility с контекстом / Activity – Android Как получить ABI (Application Binary Interface) в android Не удалось установить HelloAndroid.apk на эмулятор устройства-5554! Установите фокусировку камеры на контролируемое фиксированное расстояние на Android

Когда устанавливать параметры приложения в 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