onSavedInstanceState против SharedPreferences - PullRequest
6 голосов
/ 05 мая 2011

У меня есть 7 активаций, все с кнопками навигации назад и вперед между остальными; Актив состоит из editTexts, Spinners, textViews, TimePickers, DatePickers и флажков.

Я хочу, чтобы весь пользовательский интерфейс присутствовал и сохранялся посредством навигации по экземпляру приложения; однако по завершении приложения все должно по умолчанию.

Мое восьмое действие собирает весь пользовательский интерфейс и помещает его в электронное письмо. , .fyi

Я много читал о способах сохранения данных как onSavedInstanceState, так и SharedPreferences при переходе назад и вперед. , .

Что будет для меня лучше?

Ответы [ 2 ]

11 голосов
/ 05 мая 2011

Это будет зависеть от того, как вы хотите управлять данными.Возможны оба варианта (и более):

  • Если вы хотите заполнить один раз и сохранить данные, даже если приложение будет убито, используйте SharedPreferences.
  • Если это изменчивые данные, которые нужно будет вводить по-другому в другое время (т. Е. Через несколько дней), используйте onSavedInstanceState.
  • Если вы хотите сохранить несколько наборов данных на одном устройстве, используйте SQLiteDatabase
8 голосов
/ 05 мая 2011

SharedPreferences

  • Используйте для вещей, которые следует всегда помнить, независимо от того, выключен ли телефон (например, для настроек, выбранных на экране настроек вашего приложения

onSavedInstanceState

  • Используйте это для запоминания информации о текущем состоянии вашей деятельности, например, о выбранной в данный момент вкладке на экране. Это позволяет вам воссоздать то же состояние после поворота или еслиприложение было убито из-за нехватки памяти.
  • Вещи, сохраненные в onSaveInstanceState, будут забыты после перезагрузки, а при запуске нового экземпляра действия они не будут пропущены, поэтому они предназначены только для запоминаниясостояние активности

onRetainNonConfigurationInstance

  • Используйте это для хранения объектов, загрузка которых занимает много времени, чтобы вам не приходилось загружать их снова, когдателефон повернут.
...