我有Activity A
打开Activity B
。在B的生命周期中,它会创建大量对以后使用很重要的数据。当我离开Activity B
时,它会被摧毁。我希望当用户下次打开B时,将恢复重要数据。
所以问题是,如何存储这些重要数据?
我有几个假设:
SharedPreferences(context.getPrecerence(MODE_PRIVATE)
)。
这不是一个好的选择,因为它只允许保存原始类型。我需要保存java.io.Serializable对象(或至少Parcelable
)。
静态变量 - 不是一个选项。即使JVM在用户导航到其他应用程序时销毁我的进程,我也希望我的数据保持不变。
Context.openFileOutput()
。每次进入活动/退出时都可以进行I / O吗?
还有别的吗?
答案 0 :(得分:1)
您可以使用gson.jar
保存到SharedPreference。请参阅与此相关的this answer
答案 1 :(得分:0)
如果数据是特定于用户的,则可以使用数据库。 只要用户回来,就可以访问数据库。
或者您可以使用Bundle(使用OnSaveInstance(Bundle))。
答案 2 :(得分:0)
如果您只想通过配置更改保留数据,onSaveInstanceState(Bundle)
就是您要找的。否则,请使用数据库。
http://developer.android.com/training/basics/activity-lifecycle/recreating.html#SaveState