【问题标题】:onSavedInstanceState vs. SharedPreferencesonSavedInstanceState 与 SharedPreferences
【发布时间】:2011-05-05 16:59:58
【问题描述】:

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

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

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

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

哪个更适合我?

【问题讨论】:

    标签: android sharedpreferences savestate


    【解决方案1】:

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

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

    【讨论】:

    • 一旦有人按照我设计的数据输入路径(总是在应用程序的一个实例中)他们通过电子邮件发送数据,一旦他们通过电子邮件发送我不再需要任何数据记录,所以我相信onsavedinstancestate 状态将起作用,谢谢!
    【解决方案2】:

    SharedPreferences

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

    onSavedInstanceState

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

    onRetainNonConfigurationInstance

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

    【讨论】:

    • 一旦有人按照我设计的数据输入路径(总是在应用程序的一个实例中)他们通过电子邮件发送数据,一旦他们通过电子邮件发送我不再需要任何数据记录,所以我相信onsavedinstancestate 状态将起作用,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多