【发布时间】:2010-02-19 19:11:08
【问题描述】:
在 Android 中,您需要实现以下 Activity 方法,以便在操作系统决定销毁然后重新创建您的 Activity 时将您的应用程序恢复到之前的状态:
public void onSaveInstanceState(Bundle savedInstanceState)
public void onRestoreInstanceState(Bundle savedInstanceState)
我见过的实现这些方法的示例是在 Bundle 对象(即仅原始对象)上使用 put/getBoolean、put/getInt 等来保存应用程序状态。这似乎是一种非常容易出错的方法来保存您的状态以备不时之需,我无法看到它如何扩展到存储复杂对象而不编写大量代码。
我有哪些选项可以以可靠且易于实施的方式存储/恢复状态?
如果这很重要,我的应用程序(一个游戏)需要存储大约 50 个对象,每个对象可能存储 5 个浮点变量和一些存储对其他对象的引用。我不想为我使用的每个类和子类(可能大约 15 个)编写保存/恢复方法。如果我可以将所有与状态相关的对象粘贴在一个名为“状态”的对象中,然后在“状态”上调用保存/加载来处理所有事情,那将是理想的。
是否可以选择使用 Java 序列化?我听说它很慢,但这是保存/恢复的问题吗?我可以将数据写入 SD 卡吗?到数据库?
【问题讨论】:
标签: java android serialization