博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Activity 4种启动模式 图文解释

Posted on 2013-11-26 17:31  xuty@blog  阅读(408)  评论(0)    收藏  举报

 

4种启动模式standard、singleTop 、singleTask、singleInstance 

Manifest文件中设置Activity的启动模式:android:launchMode="XXXXX"

1standard

ABC都为standard

A跳转到BB跳转到CC跳转到A….

—————————前提—————————————

三个Activity每次都会重新onCreate

当执行“返回”的时候,出栈的顺序为C3-B3-A3-C2-B2-A2-C1-B1-A1

2singleTop

ABstandardcsingleTop

A跳转到BB跳转到CC跳转到C

———————————前提—————————————

singleTopstandard非常类似!除非一种情况,就是顶栈跳转到顶栈!

那么顶栈即图中的C 不会onCreate,而是onPause——onResume

当执行“返回”的时候,出栈的顺序为C1-B1-A1

 

3singleTask

ACstandardBsingleTask

A跳转到BB跳转到CC跳转到A

——————————前提——————————————

singleTask按字面意思,就是只有一个栈!

如图,依次为栈的状态变化

A2要跳转到B1时,检测到Task中已有B1的实例,则把B1上面的栈清空,露出B1。这样就实现了B1的保留状态,重复使用。

当执行“返回”的时候,出栈的顺序为B1-A1

 

4singleInstance

ACstandardBsingleInstance

A跳转到BB跳转到CC跳转到A

——————————前提——————————————

singleInstance按字面意思,就是只有一个实例!而每一个singleInstance模式的Activity,都会新建一个独立的栈!

所以执行A跳转BB跳转CC跳转A的过程中,AC会累加到一个栈中,BsingleInstance模式,它只有一个实例,便能够重复使用它。

当执行“返回”的时候,出栈的顺序为C3-A3-C2-A2-C1-A1-B1