对Android Activity生命周期的困惑
作者:互联网
我有一个应用程序是一个活动.
一切都按照我的预期工作,除非我把电话(三星Galaxy Ace运行姜饼)用侧面的按钮睡觉.当我这样做时,会调用以下内容(按此顺序):
onPause,onStop,onDestroy,onCreate,onStart,onResume,onPause.
这是没有唤醒手机,它仍然睡着了 – 屏幕关闭.
为什么活动被完全杀死并重新创建?
更奇怪的是,如果手机再切换回来会发生以下情况:
onResume,onPause,onStop,onDestroyed,onCreate,onStart,onResume
即使它已经“准备好了”(坐在onPause中),它也会被杀死并重新创建.
如果应用程序正在运行并按下Home,则活动仅停止,而不是被杀死,一旦停止,我可以将手机置于睡眠状态,然后再将其唤醒,活动永远不会被杀死.它只是去onRestart等……这是我所期待的.
仅当手机在活动运行时(并在前台)进入睡眠状态时,才会出现此问题.
我已经阅读了有关活动生命周期的文档,但我无法弄清楚为什么会出现这种情况.
解决方法:
当强制Activity以横向显示时(在AndroidManifest.xml中设置),我在其他三星设备上具有相同的行为.
发生这种情况是因为设备锁定屏幕被强制显示为纵向,当它位于应用程序前面时,它会强制您的顶级活动进入纵向.
这没什么好担心的,也没什么可以改变的.
标签:android,android-activity,sleep,activity-lifecycle 来源: https://codeday.me/bug/20190728/1567002.html