onSavedInstanceState与SharedPreferences

SLY*_*ger 6 android savestate sharedpreferences

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

我想通过应用程序实例的导航来呈现和保存所有UI; 但是在申请终止时,一切都需要默认.

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

我已经阅读了很多关于onSavedInstanceState和SharedPreferences的方法来保存数据,因为活动是来回的...

哪个对我更好?

Ale*_*dam 12

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

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


Jos*_*arl 9

SharedPreferences

  • 无论手机是否关闭,都可以使用应该永远记住的东西(例如,在应用的设置屏幕中选择的设置)

onSavedInstanceState

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

onRetainNonConfigurationInstance

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