0

我正在监视Activity生命周期以了解更多信息,因此我Log.d()在几乎每个周期的方法中都进行了调用。

我特别看这个序列:

[A]onSaveInstanceState() - onPause() - onStop() - onDestroy() - onStart() - [B]onRestoreInstanceState()

查看活动生命周期

使用 Ctrl-F11 将 2.2 Froyo 模拟器从纵向切换到横向我可以看到从 [A] 到 [B] 的一轮

令我感到奇怪的是,从横向切换回纵向我可以看到从 [A] 到 [B] 的两轮

onSaveInstanceState() - onPause() - onStop() - onDestroy() - onStart() - onRestoreInstanceState()
onSaveInstanceState() - onPause() - onStop() - onDestroy() - onStart() - onRestoreInstanceState()

这给我带来了很多保存/恢复活动状态的问题。

怎么会这样?为什么会这样?

编辑:使用 2.3.3 Gingerbread 模拟器,序列只运行一次。但是 2.3.3 模拟器有一个已知的错误,它会阻止它正确旋转!

4

2 回答 2

1

模拟器中的旋转与加速器旋转不同。它实际上模拟了一个开放式键盘。这是两个不同的事件,它们会导致两个不同的生命周期流程。

于 2011-03-30T10:57:25.383 回答
0

它在模拟器上发生过几次,在真实设备上检查它,它在真实设备上正常工作。

于 2013-11-18T12:36:27.660 回答