【发布时间】:2016-07-07 07:58:58
【问题描述】:
我需要弄清楚为什么我的 Activity 的 onPause/onStop 被调用,具体来说,是否有另一个 Activity(尤其是来自另一个应用程序的)替换了它。
我可以想到一些可能会暂停/停止我的 Activity 的原因,以及一些可能有助于我区分它们的 Activity 生命周期方法(onUserLeaveHint、onBackPressed、onPause、onStop、onDestroy、isFinishing),但是到目前为止,我还无法完成它。他们在这里:
Turn off display:
onPause - isFinishing FALSE
onStop - isFinishing FALSE
Back button:
onBackPressed - isFinishing TRUE
onPause - isFinishing TRUE
onStop - isFinishing TRUE
onDestroy - isFinishing TRUE
Home button:
onUserLeaveHint - isFinishing FALSE
onPause - isFinishing FALSE
onStop - isFinishing FALSE
Task switcher:
onUserLeaveHint - isFinishing FALSE
onPause - isFinishing FALSE
onStop - isFinishing FALSE
New Activity:
onUserLeaveHint - isFinishing FALSE
onPause - isFinishing FALSE
onStop - isFinishing FALSE
值得注意的是,Android 低内存杀手杀死了我的 Activity。我还不能重现,因此没有结果。
所以,我可以区分按下后退按钮和关闭显示器的时间。但是,按主页按钮、任务切换器和启动新活动在编程上对我来说是相同的。如何区分它们?
【问题讨论】:
-
您可以在
onKeyDown()中捕捉主页按钮 -
onKeyDown 未检测到主页按钮。
-
为什么我被否决了?
-
我不知道为什么这会被否决。也许是人们认为你没有必要区分这些情况,你的应用程序不应该关心。好吧,我需要知道(以减轻有关解除 Presentation 对象的 Android 错误),这就是我最终来到这里的方式。希望我的支持对您有所帮助!添加到列表中的另一个原因:方向变化。
标签: android android-activity android-lifecycle onpause