Ily*_*okh 8 lifecycle android android-activity
如果我通过这种方式从Activity1启动Activity2:startActivity(Activity2);首先执行什么:onStop()(Activity1)还是onStart()(Activity2)?
他们同时或依次工作吗?如果一个接一个,什么是第一个?
所以一般来说:如果这个订单存在,第一个活动开始时第二个活动的状态顺序是什么?
SAU*_*_12 24
假设活动A通过调用StartActivity(Intent)方法启动活动B,然后生命周期调用如下: -
现在按钮单击startActivity(intent)
一个onPause()
B onCreate()
B onStart()
B onResume()
一个onStop()
.....如果你按活动B的后退按钮,那么lifeCycle呼叫将.....
B onPause()
一个onRestart()
一个onStart()
一个onResume()
现在又有一个场景 "来自Activity A,通过在按钮点击时调用StartActivity(Intent)来启动Activity B,并在Activity B上的onstart()方法中使用finish()方法"
一个onPause()
B onCreate()
B onStart()
一个onResume()
B onStop()
B onDestory()
fed*_*aol 11
根据文档,Activity2上的onStart在Activity1上的onStop之前被调用(或者,如果你愿意,os在Activity2上调用onStop之前等待Activity2上的onStart完成).
来自http://developer.android.com/guide/topics/fundamentals/activities.html:
生命周期回调的顺序是明确定义的,特别是当两个活动在同一个进程中而另一个正在启动另一个时.以下是活动A启动活动B时发生的操作顺序:
活动A的onPause()方法执行.活动B的onCreate(),onStart()和onResume()方法按顺序执行.(活动B现在具有用户焦点.)然后,如果活动A在屏幕上不再可见,则执行其onStop()方法.
小智 8
假设 ActivityA是B通过Calling StartActivity(Intent)方法启动 Activity然后生命周期调用是这样的:-
A onCreate(), A onStart(),A onResume()现在按钮点击 startActivity(intent)
A onPause(), B onCreate(), B onStart(), B onResume(),A onStop()如果您从 Activity 按后退按钮,B则生命周期调用将是 .....
B onPause(), A onRestart(), A onStart(), A onResume(), B onStop(),B onDestory()现在还有一个场景“从 ActivityA启动 Activity,B通过调用StartActivity(Intent)按钮单击并在 Activity 的finish()方法内使用方法”onstart()B
A onPause(), B onCreate(), B onStart(), A onResume(), B onStop(),B onDestory()关键是了解活动是如何开始的。当您在 startActivity() 方法中发布 Intent 时,您只需要求系统启动此活动。接下来系统尝试启动 Activity2 并向 Activity1 发送消息。顺序是不确定的,并且在不同情况下可能会有所不同。
当两个活动在同一个进程(应用程序)中工作时,看起来我的答案是错误的,正如丹尼尔·波波夫(Daniil Popov)所指出的:https ://developer.android.com/guide/components/activities/activity-lifecycle.html (协调活动部分)
| 归档时间: |
|
| 查看次数: |
17417 次 |
| 最近记录: |