对Android Activity生命周期的困惑

时间:2013-06-23 20:50:48

标签: android android-activity sleep activity-lifecycle

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

一切都按照我的预期工作,除非我把手机(三星Galaxy Ace运行姜饼)与侧面的按钮一起睡觉。当我这样做时,会调用以下内容(按此顺序):

onPause,onStop,onDestroy,onCreate,onStart,onResume,onPause

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

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

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

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

即使它已经“准备好了”(坐在onPause上),它也会被杀死并重新创建。

如果应用程序正在运行并按下Home,则活动仅停止,不会被杀死,一旦停止,我可以将手机置于睡眠状态,然后再将其唤醒,活动永远不会被杀死。它只是转到onRestart等......这就是我所期望的。

仅当手机在活动运行时(以及在前台)进入睡眠状态时才会出现此问题。

我已经阅读了有关活动生命周期的文档,但我无法弄清楚为什么会出现这种情况。

1 个答案:

答案 0 :(得分:7)

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

发生这种情况是因为设备锁定屏幕被强制显示为纵向,当它位于您的应用程序前面时,会强制您的顶级Activity成为肖像。

这无需担心,也无法改变。