2013-06-23 104 views
3

我有一个应用程序,这是一个活动。Android活动生命周期的混乱

一切正常,除非我将手机(三星Galaxy Ace运行姜饼)放在旁边的按钮上睡觉。当我这样做时,以下称为(按此顺序):

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

这是没有叫醒电话,它仍然睡着了 - 屏幕关闭。

为什么活动完全失效并重新创建?

更为离奇,如果手机再重新开机后会发生以下情况:

的onResume,在onPause,的onStop,onDestroyed,的onCreate,在onStart,的onResume

尽管这是“蓄势待发'(坐在onPause),它会被杀死并重新创建。

如果应用程序正在运行,然后按Home,则活动仅停止,不会被杀死,一旦停止,我可以让手机进入休眠状态,然后再次将其唤醒,并且活动永远不会中止。它只是去RESTART等......这是我所期望的。

此行为仅当手机在活动运行时(以及在前台)处于睡眠状态时才会发生。

我已经阅读了关于Activity生命周期的文档,但我无法弄清楚为什么会出现这种行为。

+2

你见过多次吗?我想知道,如果您不小心将手机倾斜,以便在关闭手机时导致方向更改,然后在手机进入睡眠状态之前对其进行处理。那会导致你看到的。 – HexAndBugs

+0

您好@flightplanner,感谢您的评论,我已经多次尝试过 - 每次都会发生。此外,我也试着把手机稳定在水平方向,然后垂直方向,这样做时非常小心,不要倾斜手机。 – Zippy

+0

您的“活动”方向仅设置为“风景”吗? –

回答

7

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

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

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

+0

太棒了 - 谢谢@MaciejGórski,我的确将我的活动强制转换为Manifest中的横向模式,虽然应用程序从头开始重新开始(从加载屏幕开始),但在其他设备上它只是拾起它离开的位置关闭。感谢至少我知道是什么造成它,这让我疯狂! :-) – Zippy