Android - 在两个活动之间切换时,Activity的生命周期方法的调用顺序

Nae*_*mul 32 android android-lifecycle android-activity

我想通过调用从另一个Activity(FIRST Activity)开始一个Activity(SECOND 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
Run Code Online (Sandbox Code Playgroud)

SECOND Activity onResume之前总是叫FIRST Acitivity onStop?我想

FIRST Activity onPause
FIRST Activity onStop
SECOND Activity onCreate
SECOND Activity onStart
SECOND Activity onResume
Run Code Online (Sandbox Code Playgroud)

将被召唤,但似乎没有.

另外,如果我只是在两个活动之间切换,

FIRST Activity onPause
SECOND Activity onRestart
SECOND Activity onStart
SECOND Activity onResume
FIRST Activity onStop
Run Code Online (Sandbox Code Playgroud)

方法总是按此顺序调用吗?

Y2i*_*Y2i 43

根据文档,SECOND.onResume()应该在FIRST.onStop()之前调用() https://developer.android.com/guide/components/activities/activity-lifecycle.html#soafa (协调活动部分)


Sam*_*iya 17

假设有两个活动FirstActivitySecondActivity

这样,该顺序将始终保持不变。

//当您启动FirstActivity时

(1)的OnCreate()-> OnStart()-> OnResume()FirstActivity将被调用

当您使用startActivity(new Intent(FirstActivity.this,SecondActivity.class))启动SecondActivity时

(2)将调用FirstActivity的 OnPause()然后

(3)将调用SecondActivity的 OnCreate()-> OnStart()-> OnResume()然后

(4)调用OnStop(的) FirstActivity将被称为

//当您在SecondActivity上按返回按钮时

(5)然后调用SecondActivity的 OnPause()

(6)OnRestart() - >的OnStart() - >的的onResume() FirstActivity将被称为然后

(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.
Run Code Online (Sandbox Code Playgroud)