使用Honeycomb保存视图状态

时间:2011-08-21 14:32:18

标签: android android-3.0-honeycomb custom-view savestate

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

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

1 个答案:

答案 0 :(得分:1)

我能够解决它。那种。

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

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

android:configChanges="keyboardHidden|orientation"

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

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