[英]Android - While switching between two activities, the calling order of lifecycle methods of Activity
我想通过调用startActivity(intent)
。 在我真正做之前,我发现人们说生命周期方法是按以下顺序调用的:
FIRST Activity onCreate
FIRST Activity onStart
FIRST Activity onResume
FIRST Activity onPause
SECOND Activity onCreate
SECOND Activity onStart
SECOND Activity onResume
FIRST Activity onStop
SECOND Activity onResume
总是在FIRST Acitivity onStop
之前调用吗? 我想
FIRST Activity onPause
FIRST Activity onStop
SECOND Activity onCreate
SECOND Activity onStart
SECOND Activity onResume
将被调用,但似乎没有。
另外,如果我只是在两个活动之间切换,
FIRST Activity onPause
SECOND Activity onRestart
SECOND Activity onStart
SECOND Activity onResume
FIRST Activity onStop
方法是否总是按此顺序调用?
根据文档, SECOND.onResume() 应该在 FIRST.onStop() https://developer.android.com/guide/components/activities/activity-lifecycle.html#soafa之前调用(协调活动部分)
假设有两个活动FirstActivity
和SecondActivity
。
那么这个顺序每次都会保持不变。
// 当你启动 FirstActivity
(1) 会调用
FirstActivity
的OnCreate() -> OnStart() -> OnResume()
当您使用startActivity(new Intent(FirstActivity.this, SecondActivity.class))启动 SecondActivity
(2) FirstActivity的 OnPause() 将被调用,然后
(3) 然后将调用SecondActivity的 OnCreate() -> OnStart() -> OnResume()
(4) FirstActivity的OnStop()会被调用
// 当你按下SecondActivity上的返回按钮时
(5) 然后将调用SecondActivity的 OnPause()
(6) 然后调用FirstActivity的OnRestart () -> OnStart() -> OnResume()
(7) 将调用SecondActivity的 onStop() -> onDestroy()
Note:
(1) OnPause() will be called first when you navigate to any other activity.
(2) OnStop() will be called when activity is no longer Visible on screen.
首先打开Activity: onCreate(),OnStart(),onResume()
用户点击 backButton(): onPause(),onStop(),onDestroy()
导航到另一个屏幕:
第一个屏幕: : onPause(),onStop()
第二屏: onCreate(),OnStart(),onResume()
在 Activity2 中按下后退按钮:
第二屏: onPause(),onStop(),onDestroy()
第一个屏幕: onRestart()、onStart()、onResume()
用户锁定设备: onPause(),onStop()
再次打开锁: onRestart()、onStart()、onResume()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.