android - 如何区分调用 Activity 的 onPause() 的不同原因?

标签 android android-activity android-lifecycle onpause

我需要弄清楚为什么我的 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/

相关文章:

android - 可变实时数据集值 : Unexpected behavior in Activity's onCreate

android - 项目的生命周期 - android内存泄漏

Android Intent、Fragment 和 Activity

带有启动画面重启和后退按钮之谜的 Android Activity

android - 当我从垂直 View 更改为水平 View 时,为什么我的歌曲会重新开始播放?

java - 从服务器更新 Strings.xml - Android SDK

android - 如何在 AlertDialog box Android 中以粗体和换行显示消息

java - 如何关闭来自其他java的音乐bgm(背景音乐)

android - 切换安卓x86屏幕分辨率

android - `Content_main.xml` 有什么意义?