简述Activity 的启动模式、生命周期

面试的时候,经常会被面试官问到,说一下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

你可能感兴趣的:(简述Activity 的启动模式、生命周期)