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

Activity的启动模式

时间:2016-05-23 13:09:56      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

  • Standard 标准模式, 每次创建一个Activity都会创建一个新的实例

 

  • SingleTop 栈顶复用模式, 如果实例已经存在任务栈的栈顶, 那么此Activity不会被创建, 同时它的onNewInte会被回调

 

  • SingleTask 单任务栈模式, 如果不存在所需的任务栈则创建一个相应的任务栈, 然后创建所需的实例并入栈, 如果存在所需的任务栈, 则在该任务栈中查找是否存在相应的实例,如果存在相应的实例, 则移动该实例到栈顶, 否则创建相应的实例并入栈

 

  • SingleInstance 单实例模式, 加强版的singleTask , 具有此种特性的Activity只能单独存在于相应的任务栈中

 

  

TaskAffinity 指定任务栈的名字默认情况下, 为应用的包名

 

1.Activity添加luancherMode设置启动模式

 

2.Intent设置Flag的方式指定Activity的启动模式

第一中方法无法直接给Activty设置FLAG_ACTIVTY_CLEAR_TOP标识, 第二种无法设置SingleInstance 模式

 

FLAG_ACTIVITY_NEW_TASK 指定Activity的启动模式为singleTask

 

FLAG_ACTIVITY_SINGLE_TOP : 指定Activity的启动模式为singleTop

 

FLAG_ACTIVITY_CLEAR_TOP : SingleTask的情况下, 如果实例已经存在, 那么onNewIntent, 如果Standard模式, 那么连同它之上的所有Activity都要出栈, 然后创建新的Activity并放入任务栈

 

FLAG_ACTIVTY_EXCLUDE_FROM_RECENTS : 具有这个标记的Activity不会出现在Activity的历史列表中

 

 

Intent的匹配规则

  • Action

一对一

  • Category

只要存在对应的分类, 默认添加android.intent.category.DEFAULT 这个category

  • Data

由两部分组成, mimeTypeURI

URI的默认值为contentfile

<scheme>://<host>:<port>/[<path>/[pathPrefix]|<pathPattern>]

 

Activity的启动模式

标签:

原文地址:http://www.cnblogs.com/lixiaomao/p/5519552.html

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