我需要弄清楚为什么我的 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 低内存 killer 杀死我的 Activity 时。我还无法重现,因此没有结果。
因此,我能够区分何时按下后退按钮以及何时关闭显示屏。但是,按主页按钮、任务切换器和启动新 Activity 在编程上对我来说是相同的。我如何区分它们?
最佳答案
好吧,我最后做了一些事情来区分不同的情况:
在 onBackPressed() 中设置一个标志来检测后退按钮 检查服务中的新前台应用程序以检测启动器和任务切换器。 在所有其他新前台应用的情况下,通知用户。
关于android - 如何区分调用 Activity 的 onPause() 的不同原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38240317/