6

我有 7 个活动,其余活动之间都有来回导航按钮;活动由 editTexts、Spinners、textViews、TimePickers、DatePickers 和复选框组成。

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

我的第 8 个活动将所有 UI 和地点收集到电子邮件中。. 。供参考

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

哪个更适合我?

4

2 回答 2

13

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

  • 如果您想填充一次并保留数据,即使应用程序被终止,请使用SharedPreferences.
  • 如果它是易失性数据,必须在其他时间(即几天后)以不同的方式重新输入,然后使用onSavedInstanceState.
  • 如果您想在同一设备上保留多个数据集,请使用SQLiteDatabase
于 2011-05-05T17:13:22.370 回答
12

SharedPreferences

  • 用于应该始终记住的事情,无论手机是否关闭(例如,用于在应用程序的设置屏幕中选择的设置

onSavedInstanceState

  • 使用它来记住有关活动当前状态的信息,例如屏幕上当前选择的选项卡。这允许您在旋转后或应用程序因内存不足而被终止时重新创建相同的状态。
  • 保存的东西onSaveInstanceState在重启后会被遗忘,在启动一个新的activity实例时不会被传递,所以它们只是为了记住activity的状态

onRetainNonConfigurationInstance

  • Use this for storing objects which take a long time to load so that you don't have to load them again when the phone is rotated.
于 2011-05-05T17:24:42.467 回答