Android活动生命周期:新活动开始时的状态顺序
如果我通过以下方式从Activity1启动Activity2:Android活动生命周期:新活动开始时的状态顺序,android,android-activity,lifecycle,Android,Android Activity,Lifecycle,如果我通过以下方式从Activity1启动Activity2:startActivity(Activity2)首先执行什么:onStop()(活动1)或onStart()(活动2) 它们是同时工作还是轮流工作?如果一个接一个,首先是什么 所以一般来说:当第一个活动第二次启动时,活动的状态顺序是什么?如果存在此顺序?使用日志将日志发布到Logcat Log.v("STATE", "Pause...and so on"); 关键是理解活动是如何开始的。在startActivity()方法中发布意图
startActivity(Activity2)代码>首先执行什么:onStop()
(活动1)或onStart()
(活动2)
它们是同时工作还是轮流工作?如果一个接一个,首先是什么
所以一般来说:当第一个活动第二次启动时,活动的状态顺序是什么?如果存在此顺序?使用日志将日志发布到Logcat
Log.v("STATE", "Pause...and so on");
关键是理解活动是如何开始的。在startActivity()方法中发布意图时,您只需要求系统启动此活动。下一个系统尝试启动Activity2并向Activity1发送消息。顺序是不确定的,在不同的情况下可能会有所不同
看起来我的回答是错误的,因为这两个活动都在同一个流程(应用程序)中工作
正如丹尼尔·波波夫所指出的那样:(协调活动部分)当我们从第一个活动导航到第二个活动时
调用onPause()方法,后跟onStop(),然后调用第二个活动的onCreate()方法,后跟onStart()和onResume()
当按back键导航回firstactivity时也是如此
调用第二个活动的onPause()方法,后跟onStop(),然后调用第一个活动的onRestart()方法,后跟onStart(),然后再调用onResume()。根据文档,在Activity1的onStop()之前调用Activity2的onStart()(或者,如果您愿意,操作系统会在Activity1上调用onStop之前等待Activity2上的onStart完成)
发件人:
生命周期回调的顺序定义得很好,特别是当两个活动处于同一个流程中且一个正在启动另一个时。以下是活动A启动活动B时发生的操作顺序:
执行活动A的onPause()方法。
活动B的onCreate()、onStart()和onResume()方法按顺序执行。(活动B现在以用户为中心。)
然后,若活动A在屏幕上不再可见,则执行其onStop()方法
假设ActivityA通过调用StartActivity(Intent)方法启动Activity B,那么生命周期调用如下:-
- 一个onCreate()
- A onStart()
- 简历
现在点击按钮可获得startActivity(意向)
- 暂停
- B onCreate()
- B onStart()
- B.简历()
- 顶
…如果您在活动B中按下后退按钮,则生命周期调用将是…
- B暂停()
- 一个onRestart()
- A onStart()
- 简历
- B顶部()
- B.故事()
现在还有一个场景“从活动A开始,通过在按钮上调用StartActivity(Intent)启动活动B,并在活动B的onstart()方法中使用finish()方法”
- 暂停
- B onCreate()
- B onStart()
- 简历
- B顶部()
- B.故事()
生命周期回调的顺序定义得很好,特别是当两个活动处于同一个流程中且一个正在启动另一个时。以下是活动A启动活动B时发生的操作顺序:
活动A的onPause()方法执行。活动B的onCreate()、onStart()和onResume()方法按顺序执行。(活动B现在具有用户焦点。)然后,如果活动A在屏幕上不再可见,则其onStop()方法执行。假设活动A
通过调用StartActivity(Intent)启动活动B
方法,然后生命周期调用如下:-
A
,onCreate()
A
,onStart()
A onResume()
startActivity(intent)
A
,onPause()
B
,onCreate()
B
,onStart()
B
,onResume()
A onStop()
如果您在活动
B
中按下后退按钮,则生命周期调用将
B
,onPause()
A
,onRestart()
A
,onStart()
onResume(),A
onStop(),B
B
onDestory()
现在还有一个场景“从活动
A
启动活动B
,方法是调用StartActivity(Intent)
上的按钮,单击并使用finish()
内的onstart()
方法启动活动B
”
A
,onPause()
B
,onCreate()
B
,onStart()
A
,onResume()
onStop(),B
B
onDestory()
当我通过编程方式检查它时,它遵循了以下所有步骤且易于理解只需覆盖activity1中的onStop()和activity2中的onStart(),然后进行一些日志记录,看看哪个日志记录最先出现。我只是在我的应用程序中添加了一些日志记录代码,我看到了不同的画面:1)activity1 onPause()2)活动2启动3)活动2恢复()4)活动1启动()。顺序已确定-Android开发者网站已更新,
协调活动
部分位于活动A的假设中,您可以进行追溯