码迷,mamicode.com
首页 > 其他好文 > 详细

Activity的启动模式

时间:2016-09-30 01:15:36      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

前情提要:

Activity被创建的实例是放在任务栈中的,任务栈的图形模式如下:

技术分享

 

Activity的四种启动模式:

1.standard(标准模式):每次启动Activity都会重新创建一个新实例。

 

2.singleTask(栈内复用模式):如果栈内已经存在Activity A,那么再启动Activity A的话不会重新创建实例,而是把这个Activity置顶,并调用onNewIntent方法。

 

3.singleTop(栈顶复用模式):如果想要启动Activity A,且Activity A位于栈顶,那么就不会重新创建Activity A,而是调用onNewIntent方法,如果Activity A不在栈顶则会重新创建。

 

4.singleTask(单实例模式):比如启动Activity A,会单独创建一个任务栈把Activity A放进去。

 

P.S.默认情况下,所有Activity所需的任务栈的名字都是应用的包名,特殊情况可以使用TaskAffinity属性指定任务栈的名字。

 

1.当TaskAffinity与singleTask结合的时候,活动是运行在名字与TaskAffinity相同的栈中。

 

2.当TaskAffinity与allowTaskReparenting结合的时候,如果应用A启动了应用B的Activity C,然后按Home键返回桌面,如果allowTaskReparenting为true,那么打开应用B的话,Activity C的实例会从应用A的栈移到应用B的栈。

 

Activity的启动模式

标签:

原文地址:http://www.cnblogs.com/woniu123/p/5922092.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!