说下 Activity 的启动模式,生命周期,两个 Activity 跳转的生命周期,如果一个 Activity 跳转另一个 Activity 再按下 Home 键在回到 Activity 的生...

启动模式:

Standard 模式:Activity 可以有多个实例,每次启动 Activity,无论任务栈中是否已经有这个Activity的实例,系统都会创建一个新的Activity实例

SingleTop模式:当一个singleTop模式的Activity已经位于任务栈的栈顶,再去启动它时,不会再创建新的实例,如果不位于栈顶,就会创建新的实例

SingleTask模式:如果Activity已经位于栈顶,系统不会创建新的Activity实例,和singleTop模式一样。但Activity已经存在但不位于栈顶时,系统就会把该Activity移到栈顶,并把它上面的activity出栈

SingleInstance模式:singleInstance 模式也是单例的,但和singleTask不同,singleTask 只是任务栈内单例,系统里是可以有多个singleTask Activity实例的,而 singleInstance Activity 在整个系统里只有一个实例,启动一singleInstanceActivity 时,系统会创建一个新的任务栈,并且这个任务栈只有他一个Activity

生命周期:

onCreate onStart onResume onPause onStop onDestroy

两个 Activity 跳转的生命周期

1.启动A

onCreate - onStart -  onResume

2.在A中启动B

ActivityA  onPause

ActivityB  onCreate

ActivityB  onStart

ActivityB  onResume

ActivityA  onStop

3.从B中返回A(按物理硬件返回键)

ActivityB onPause

ActivityA onRestart

ActivityA onStart

ActivityA onResume

ActivityB onStop

ActivityB onDestroy

4.继续返回

ActivityA onPause

ActivityA onStop

ActivityA onDestroy

notice:当启动的启动Activity是dialog样式的时候,从A启动B不会执行onstop()方法

你可能感兴趣的:(说下 Activity 的启动模式,生命周期,两个 Activity 跳转的生命周期,如果一个 Activity 跳转另一个 Activity 再按下 Home 键在回到 Activity 的生...)