在Android developer diagram中,我发现在onResume()
之前始终会调用onPause()
。假设用户启动了新的Activity
,为什么onPause()
前面会onResume()
?
我的意思是:
可以在2个场景中调用OnResume:
1)当用户开始新活动时(OnPause之前)
2)当活动在后台并且用户将活动带回时 前景
我希望在每种情况下都应该做点别的事情。
答案 0 :(得分:1)
你弄错了。每当创建活动时,在 onStart 之后立即调用 onResume 。每当您的活动返回时,都会调用 onPause 。再次,如果您的活动回到前台,则会调用 onResume 。因此,它不像在 onPause 之前调用 onResume 。每当活动从 onPause 状态返回时,将调用 onResume 而不是 onStart 或 onCreate 。这种情况发生,因此Android不必一次又一次地创建Activity实例,尽管这些实例未被正确销毁。这也非常有效。
注意:如果您的应用正在运行且用户按返回按钮或主页按钮,则活动将通过 onPause ()和 onStop()状态。在此之后,如果用户再次返回您的应用,那么将依次调用 onRestart(), onStart()和 onResume() 。
然后当活动仅在 onPause()状态时?当对话框出现在您的活动或您的活动之上时< strong>在分屏中显示,但没有焦点(用户没有与您的应用互动)。在这些情况下,活动仅进入 onPause()状态。
答案 1 :(得分:1)
始终在onResume()
之前调用{p>onPause()
这是对的。首次启动活动时,onResume
之前,以及恢复活动时(用户导航回您的活动),始终会调用onCreate
假设用户启动了一个新活动,为什么
onPause()
应该是。{1}} 前面是onResume()
onPause
仅在将Activity置于后台时调用,或者在onDestroy
之前调用,如果应用程序被销毁。因此onPause
始终在调用onResume
之后被称为。为什么?因为这是Android框架定义的Activity的生命周期。
答案 2 :(得分:0)
活动的生命周期如下
黄色背景:活动进入背景,因此不再可见。用户返回到活动。
例如
绿色背景:活动停留在可见的屏幕区域中,但未处于活动状态 例如激活多个窗口(分屏),每个窗口占据屏幕的一部分,并提示您的应用程序处于活动状态
以下是带有两个应用程序的分屏示例: