1

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

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

我有几个假设:

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

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

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

还有什么?

4

3 回答 3

1

您可以使用 保存到 SharedPreference gson.jar。查看与此相关的答案

于 2013-06-29T12:21:36.433 回答
0

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

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

这个答案在 Bundles 中很有用

于 2013-06-29T12:23:34.453 回答
0

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

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

于 2013-06-29T12:24:46.140 回答