Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android/Java-活动生命周期-返回上一个活动时我在哪里?_Java_Android_Android Activity_Android Lifecycle - Fatal编程技术网

Android/Java-活动生命周期-返回上一个活动时我在哪里?

Android/Java-活动生命周期-返回上一个活动时我在哪里?,java,android,android-activity,android-lifecycle,Java,Android,Android Activity,Android Lifecycle,当我在第二个活动中点击“后退”时,我找不到关于我在第一个活动中的位置的信息。为什么? 第一个肯定没有被重新制作,所以我在哪个“on…”(比如onResume()、onStop()等)中?onResume()将根据 在链接的图片中,它说 用户返回活动 在正常情况下,将首先调用onPause(),然后在返回时调用onResume() 要检查这一点,您可以@覆盖onResume(),并查看它是否被调用。当您按back时,然后返回到activity1的onResume() 有关更多信息,请查看:答案取决

当我在第二个活动中点击“后退”时,我找不到关于我在第一个活动中的位置的信息。为什么?

第一个肯定没有被重新制作,所以我在哪个“on…”(比如onResume()、onStop()等)中?

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()

在生命周期文档中,您将看到以下流程图,您可能会发现这些流程图非常有用: