2011-05-05 38 views
6

我有7个活动全部与其他之间来回导航按钮; activite由editTexts,Spinners,textViews,TimePickers,DatePickers和复选框组成。onSavedInstanceState与SharedPreferences

我希望所有UI都能通过应用程序实例的导航进行存在和保存;然而,在应用程序终止时,一切都需要默认。

我的第8项活动将所有用户界面和地点收集到一封电子邮件中。 。 .fyi

我已经读了很多关于onSavedInstanceState的内容& SharedPreferences数据保存的方式来回活动。 。 。

哪个对我更好?

回答

11

这取决于你想要如何管理数据。这两个选项(以及更多)都是可行的:

  • 如果您想填充一次并保存数据(即使应用程序被杀死),请使用SharedPreferences
  • 如果是易失数据,必须在其他时间(即数日后)重新输入数据,则使用onSavedInstanceState
  • 如果你想保持多个数据集在同一台设备上,然后使用的东西应该永远记住,不管手机是关闭的SQLiteDatabase
+0

一旦有人按照我设计的数据输入路径(总是在应用程序的一个实例中),他们会通过电子邮件发送数据,只要他们通过电子邮件发送,我不再需要任何数据记录,因此我相信onsavedinstancestate状态会工作谢谢! – SLYtiger 2011-05-05 17:26:30

7

SharedPreferences

  • 使用(例如,在您的应用程序的设置屏幕选择设置

onSavedInstanceState

  • 用于记忆有关活动当前状态的内容,例如屏幕上当前选定的选项卡。这允许您在轮换之后重新创建相同的状态,或者由于内存不足而导致应用程序死亡。
  • 保存在onSaveInstanceState的事情将在重启后忘记,并开始活动的新实例时,他们不会通过,所以他们只为记住活动

onRetainNonConfigurationInstance

的状态
  • 使用此功能可以存储需要很长时间才能加载的对象,以便在手机旋转时不必再次加载它们。
+0

一旦有人按照我设计的数据输入路径(总是在应用程序的一个实例中)发送数据,只要他们通过电子邮件发送数据,我不再需要任何数据记录,因此我相信onsavedinstance状态将起作用谢谢! – SLYtiger 2011-05-06 05:41:27