0

我开发了一个非常简单的游戏,它使用自定义视图绘制到屏幕上。在我的手机(Android 2.2)上,我可以按下设备上的主页按钮并执行其他任务。返回游戏时,它会恢复到之前的确切状态。问题是,我不必重写任何方法或真正为这种行为发生做任何事情。然而,在 Honeycomb 上,它会像我期望的那样重置一切。

这非常令人费解......我想知道是否有办法让 Honeycomb 在这方面表现得像 2.2。我对保存视图状态不太熟悉,但由于我有很多变量(数百个,取决于自定义对象的保存方式),我想手动操作会很不愉快。

4

1 回答 1

1

我能够解决它。有点儿。

基本上,问题是由 Android 在我的活动中处理屏幕被固定为纵向模式的方式引起的。在 2.2 中,Android 将以纵向模式打开 Activity,而不是重新启动 Activity。但是,在 Android 3.0 中,它会打开 Activity,然后旋转屏幕,导致它重新启动 Activity(因为发生旋转时会发生这种情况)。

为了解决这个问题,我在清单中的活动中添加了以下内容:

android:configChanges="keyboardHidden|orientation"

这告诉 Android 您将自己处理配置更改。就我而言,我什么都不做,因为我的应用程序被锁定在纵向模式。

应用程序暂停时未清除状态的原因是未调用 onCreate()。我知道 Android 可以杀死应用程序,它会调用 onCreate(),所以我仍然必须通过保存 Activity 变量并用它们重新创建视图来处理这种情况。

于 2011-08-22T12:29:05.647 回答