您的位置:首页 > 移动开发 > Android开发

Android Activity的LaunchMode有四种模式

2013-03-29 10:17 302 查看
记录知识点

Activity的LaunchMode有四种模式

1,standard 普通

2,SingleTop 单例

启动activity如果activity在栈顶不会创建新对象而是调用OnNewIntent()方法。

当该activity不在栈顶,则会创建新对象与standard没什么区别。

例如:

A为singleTop 栈内情况从下至上为A-B-C-D “D”又跳转“A”同时设置了FLAG_ACTIVITY_CLEAR_TOP,此时栈顶只有A,

这时会调用A中重写的OnNewIntent()方法。

3,SingleTask 不会创建相同实例

启动activity时如果该activity在栈里面已经存在,则不会创建新对象,而是clear掉改对象以上的栈空间。同时

会调用OnNewIntent().

4,SingleIntance

设置singleIntance原理:其实是创建了一个新的Task,Android 中的Task可以理解为栈,该Task里面只有一个activity

故此activity不受application的限制,可以多个应用共享。

例如:

调用顺序:(Task1)A-(Task1)B-(Task2)C-(Task1)B

C为singleIntance,以上栈图可定义为2个。C单独在一个Task(栈)内。

从后往前返回时

调用顺序: (Task1)B-(Task1)B-(Task1)A-(Task2)C

之所以2次显示Task1中的B是因为Task1为默认standard状态,该状态根据有顺序的加入栈中,不停创建新对象。

图下

(Task1) (Task2)

|B|

|B| |C| 退出总在最后

|A|
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: