onSavedInstanceState与SharedPreferences

时间:2011-05-05 16:59:59

标签: android sharedpreferences savestate

我有7个活动,其余的都有来回导航按钮;活动包括editTexts,Spinners,textViews,TimePickers,DatePickers和复选框。

我想通过导航应用程序实例来显示和保存所有UI;但是在应用程序终止时,一切都需要默认。

我的第8个活动会收集所有用户界面并将其放入电子邮件中。 。 .fyi

我已经阅读了很多onSavedInstanceState& SharedPreferences在活动来回时保存数据的方式。 。

哪个对我更好?

2 个答案:

答案 0 :(得分:11)

这取决于您希望如何管理数据。两种选择(以及更多)都是可行的:

  • 如果您想填充一次并保留数据,即使应用程序被杀死,请使用SharedPreferences
  • 如果它的易失性数据必须在其他时间(即几天之后)以不同方式重新输入,则使用onSavedInstanceState
  • 如果要在同一设备上保留多个数据集,请使用SQLiteDatabase

答案 1 :(得分:8)

SharedPreferences

  • 用于应该始终记住的内容,无论手机是否已关闭(例如,在应用的设置屏幕中选择的设置)

onSavedInstanceState

  • 使用此功能记住有关当前活动状态的信息,例如屏幕上当前选定的选项卡。这允许您在轮换后重新创建相同的状态,或者由于内存不足而导致应用程序被杀死。
  • 重新启动后,onSaveInstanceState中保存的内容将被遗忘,当启动活动的新实例时,它们将不会被传递,因此它们仅用于记住活动的状态

onRetainNonConfigurationInstance

  • 使用它来存储需要很长时间才能加载的对象,这样您就不必在旋转手机时再次加载它们。