安卓学习笔记_Activity的四种启动模式

概述

Activity启动模式:

standard, singleTop, singleTask, singleInstance

指定方式:

在 AndroidManifest.xml 中给 Activity 标签指定 android: lunchMode 属性
安卓学习笔记_Activity的四种启动模式

活动的启动模式

1. standard

Activity的默认启动模式
每启动一个Activity就会在栈顶创建一个新的实例。
缺点:当Activity已经位于栈顶时,而再次启动Activity时还需要在创建一个新的实例,不能直接复用。

2. singleTop

只有Activity不在 栈顶 的时候, 才会创建 Activity的实例, 否则会直接复用栈顶Activity
缺点:如果Activity并未处于栈顶位置,则可能还会创建多个实例。

3. singleTask

使Activity在整个应用程序中只有一个实例。
如果在需要创建Activity的时候, 发现 栈 中已存在该Activity实例, 则直接启动该实例,
在其上的Activity 都会被出栈.

4. singleInstance

指定为singleInstance 的活动, 在被创建时会产生一个全新的返回栈来管理这个活动.
注意: 该实例有且仅有一个
(singleTask模式中, 如果指定了不同的 taskAffinity, 也会产生新的返回栈)

应用场景: 如果应用a的Activity x可能会被应用b, 应用c 打开, 那么Activity x使用singleInstance模式, 将会分别为不同应用打开的Activity x, 并且不会影响到其他应用的工作