Task and Back Stack难点及疑点记录
来源:互联网 发布:软件自学网cad2016 编辑:程序博客网 时间:2024/06/01 07:33
1.SingleTask:系统在该类型的Task不存在时创建一个新的Task,并将该Activity放入Task底部。如果新的Intent到达时,该Activity上面有其他的对象则将这些对象从Task中弹出。 逻辑执行如下: 如果该activity的Task已存在(TaskAffinity标记),则直接将该Task拉回前 台,并清除该activity上面的所有对象,使该activity可以处理新的Intent。如果该Task不存在,则新建Task并将该activity作为RootActivity。 综上所述:singleTask的作用相当于FLAG_ACTIVITY_CLEAR_TOP+FLAG_ACTIVITY_NEW_TASK 2.SingleInstance:系统总是会创建一个新的Task来放置启动的Activity,并且新创建的Task中只会有这一个Activity; 如果在此Activity中又跳转到其他的Activity中则相当于在Intent中加入了FLAG_ACTIVITY_NEW_TASK标记; 3.AllowTaskReparenting:允许重定义父级,即当activityA被一个外部应用启动时,activityA会被放入启动它的TaskA中。如果该activityA的TaskAffinity(即同一应用)标记的TaskB在之后也被启动时,activityA会被放入TaskB的顶部,并从TaskA中弹出。进一步如果TaskA为第一次启动那么TaskA的中除了activityA之外还有一个RootActivity。
4.FLAG_ACTIVITY_CLEAR_TOP: Standard模式:系统收到新的Intent时,如果Task中存在该Activity则弹出Activity和Activity上面的所有对象,并重新初始化一个新的Activity对象放入栈顶,以处理Intent请求。因为Standard总是初始化新的Activity来处理Intent请求。
其他模式:则会将Activity上面的对象弹出,使该Activity在栈顶部,以处理Intent请求。
5.FLAG_ACTIVITY_NEW_TASK: 如果该Activity的Task已经存在,则不创建新的task,而是将待启动的Activity放入已经存在的Task中,如果Task不存在则创建新的Task,并将待启动的Activity放入新创建的Task中;其中task的标识由配置文件中的TaskAffinity属性指定;
6.系统一段时间后会清除后台Task中的Activity,除了RootActivity。这是系统的默认行为。下面几个值会改变系统的默认行为:
AlwaysRetainTaskState:总是保存Task中Activity的状态,对RootActivity设置才有效果。
ClearTaskOnLunch:离开回来总是清除除了RootActivity之外的对象,对RootActivity设置才有效果。
FinshOnTaskLunch:可以设置所有的Activity,只对设置的Activity有效,离开回来总是清除除了设置该属性的对象
0 0
- Task and Back Stack难点及疑点记录
- Task and Back Stack
- Task and Back Stack
- task and back stack
- Task and Back Stack
- Android Task and Back Stack 原理
- Task和Back Stack
- Task与Back stack
- Task和Back Stack
- android学习笔记之Task and back stack
- Android 菜鸟认知——Task and Back Stack
- android学习笔记之Task and back stack
- 任务Task及回收栈back stack介绍
- 关于android任务Task及回收栈back stack介绍
- android 任务Task及回收栈back stack介绍
- android 任务Task及回收栈back stack介绍
- android task与back stack
- Android--Task与Back Stack
- poj 3928 Ping pong
- ubantu14.0.4下SSH无密码登陆设置
- 数据库启动三阶段
- Linux信号机制
- maven学习--生命周期和插件
- Task and Back Stack难点及疑点记录
- [LeetCode]-Palindrome Number 判断整数回文
- Qt-界面美化
- 判断是否字符串重组 Scramble String @LeetCode
- 基于Linux的TCP网络编程
- POJ 3680 Intervals(最小费用流)
- EasyUI学习-如何使用jQuery EasyUI?
- 配置JDK环境变量
- Android项目快速开发框架探索(Mysql + OrmLite + Hessian + Sqlite)