Android中Activity有四种启动模式:standard(default),singleTop,singleTask,singleInstance。
standard或者singleTop activity可以被实例化多个,而singleTask或singleInstance只可以有一个实例。
Android的Task是一个Activity栈,用来完成用户的某一个目的,而不管这个Acitivity是属于哪个AP的。Task中的Activity可以分属于不同的AP。
在Task中,有一个Acitivity叫root activity,它是用来启动一个Task。
Tasks在系统中做交互的时候,这个Task所包含的所有Activities会被作为一个整体移动。比方说:Task A被设置成foreground/background task的时候,整个task(activity stack)都会随之移动。
一个Activity栈也可能是由一个或多个Task组成。
Task中还有一个重要的属性就是用户可以中断目前正在做的事情,而去跑另外一个Task。基于这样一个特性,用户就可以同时跑不同的task,而且可以在它们之间切换。
有三个方法中断Task:1.Notification;2.用户操作,比如按Home或者开启另外一个程序;3.Activity中自己定义的New Task,比如说Map或者Browser,在Email中选择address会Launch Google Map,选择Link会Launch Browser,等等。
如何使用task呢?
1. 如何决定所属task
“standard”和”singleTop”的activity的目标task,和收到的Intent的发送者在同一个task内,除非intent包括参数FLAG_ACTIVITY_NEW_TASK。
Android task介绍
最新推荐文章于 2020-01-07 19:08:38 发布
Android的Task是一个Activity栈,代表用户的一个操作序列。Activity有四种启动模式:standard、singleTop、singleTask、singleInstance。standard和singleTop可以有多个实例,而singleTask和singleInstance只有一个实例。启动模式影响Activity所属Task、是否允许多个实例、是否共享Task以及是否每次都创建新实例。FLAG_ACTIVITY_NEW_TASK、FLAG_ACTIVITY_CLEAR_TOP等Intent Flag用于控制Task行为。
摘要由CSDN通过智能技术生成