如何在以后使用的活动中保存数据

时间:2013-06-29 12:19:24

标签: android

我有Activity A打开Activity B。在B的生命周期中,它会创建大量对以后使用很重要的数据。当我离开Activity B时,它会被摧毁。我希望当用户下次打开B时,将恢复重要数据。

所以问题是,如何存储这些重要数据?

我有几个假设:

  1. SharedPreferences(context.getPrecerence(MODE_PRIVATE))。 这不是一个好的选择,因为它只允许保存原始类型。我需要保存java.io.Serializable对象(或至少Parcelable)。

  2. 静态变量 - 不是一个选项。即使JVM在用户导航到其他应用程序时销毁我的进程,我也希望我的数据保持不变。

  3. Context.openFileOutput()。每次进入活动/退出时都可以进行I / O吗?

  4. 还有别的吗?

3 个答案:

答案 0 :(得分:1)

您可以使用gson.jar保存到SharedPreference。请参阅与此相关的this answer

答案 1 :(得分:0)

如果数据是特定于用户的,则可以使用数据库。 只要用户回来,就可以访问数据库。

或者您可以使用Bundle(使用OnSaveInstance(Bundle))。

This answer is useful in Bundles

答案 2 :(得分:0)

如果您只想通过配置更改保留数据,onSaveInstanceState(Bundle)就是您要找的。否则,请使用数据库。

http://developer.android.com/training/basics/activity-lifecycle/recreating.html#SaveState