Android/Java-活动生命周期-返回上一个活动时我在哪里?
当我在第二个活动中点击“后退”时,我找不到关于我在第一个活动中的位置的信息。为什么? 第一个肯定没有被重新制作,所以我在哪个“on…”(比如onResume()、onStop()等)中?Android/Java-活动生命周期-返回上一个活动时我在哪里?,java,android,android-activity,android-lifecycle,Java,Android,Android Activity,Android Lifecycle,当我在第二个活动中点击“后退”时,我找不到关于我在第一个活动中的位置的信息。为什么? 第一个肯定没有被重新制作,所以我在哪个“on…”(比如onResume()、onStop()等)中?onResume()将根据 在链接的图片中,它说 用户返回活动 在正常情况下,将首先调用onPause(),然后在返回时调用onResume() 要检查这一点,您可以@覆盖onResume(),并查看它是否被调用。当您按back时,然后返回到activity1的onResume() 有关更多信息,请查看:答案取决
onResume()
将根据
在链接的图片中,它说
用户返回活动
在正常情况下,将首先调用onPause()
,然后在返回时调用onResume()
要检查这一点,您可以
@覆盖onResume()
,并查看它是否被调用。当您按back时,然后返回到activity1的onResume()
有关更多信息,请查看:答案取决于您的活动。下面是几个不同的场景,它们将导致调用不同的生命周期方法。下面的每个场景都假设存在一个活动A
和B
,其中后者由第一个调用;i、 按下按钮后
场景1:B
为半透明和/或非全尺寸(即对话框样式)
活动A
将失去焦点,但仍然可见,因为B
是非全尺寸和/或透明的,并且位于A
之上。在这种情况下,A
将被暂停。暂停的活动完全处于活动状态(它维护所有状态和成员信息,并保持与窗口管理器的连接),但在内存极低的情况下,系统可能会终止该活动
场景2:B
为全尺寸
活动A
被B
完全遮挡。它将被停止。它仍然保留所有的状态和成员信息,但是,它对用户不再可见,因此它的窗口被隐藏,当其他地方需要内存时,它通常会被系统杀死
以上所有内容都在
因此,我们现在知道活动A
将暂停(场景1)或停止(场景2),或者被系统杀死以释放内存。首先假设后者不会发生,然后以下生命周期方法是相关的:
场景1:onPause()
当B
显示时,接着是onResume()
当A
重新聚焦时。
场景2::onPause()
和onStop()
当B
显示时,接着是onStart()
和onResume()
当A
重新聚焦时
如果某个活动被暂停或停止,系统可以通过要求该活动完成或简单地终止其进程,将其从内存中删除。当它再次向用户显示时,必须完全重新启动并恢复到以前的状态。这意味着活动将以onCreate()
重新开始,然后是onStart()
和onResume()
在生命周期文档中,您将看到以下流程图,您可能会发现这些流程图非常有用: