4

我有一个应用程序,它是一项活动。

一切都按我的预期工作,除非我将手机(运行 Gingerbread 的三星 Galaxy Ace)用侧面的按钮放入睡眠状态。当我这样做时,将调用以下内容(按此顺序):

onPause、onStop、onDestroy、onCreate、onStart、onResume、onPause

这是没有唤醒手机,它仍然处于睡眠状态 - 屏幕关闭。

为什么活动被完全杀死并重新创建?

更奇怪的是,如果手机重新开机,会发生以下情况:

onResume, onPause, onStop, onDestroyed, onCreate, onStart, onResume

即使它“准备就绪”(坐在 onPause 中),它也会被杀死并重新创建。

如果应用程序正在运行并且我按下主页,那么活动只会停止,不会被杀死,一旦停止,我可以让手机进入睡眠状态,然后再次唤醒它,并且活动永远不会被杀死。它只是去 onRestart 等......这是我所期望的。

此行为仅在 Activity 运行(以及在前台)时手机进入睡眠状态时发生。

我已经阅读了 Activity Lifecycle 上的文档,但我无法弄清楚为什么会发生这种行为。

4

1 回答 1

8

Activity当强制以横向显示(在 AndroidManifest.xml 中设置)时,我在其他三星设备上也有相同的行为。

发生这种情况是因为设备锁定屏幕被迫以纵向显示,并且当它在您的应用程序前面时,它会强制您的顶层Activity为纵向。

这没什么好担心的,也没有什么可以改变的。

于 2013-06-23T21:10:41.833 回答