android activity Launch Mode & TaskAffinity解析

四种Launch mode

 

 Standard,默认模式,可以多实例,可以在task里面产生多个实例

 SingleTop:当启动的activity为当前的activity时,不生成新实例,回调onNewIntent,反之,生成新的实例。

 SingleTask:如果该activity已经存在,那么切换task,然后把该activity之后的所有activity全部销毁,如果没有,则启动一个新的task

 SingleInstace:与SingleTask相似,不同的是,该task只能该activity独占,不能有其他activity,如果在该task启动其他activity,相当于附带NEW_TASK_FLAG

 

TaskAffinity:activity归属感? 可以理解为activity group。

用String来表示affinity的值,相同的值代表相同的activity group

与之相关的属性

allowTaskReparenting,当启动后切换到后台,是否可以将它移动到affinity相同的task,浏览器的例子

clearTaskOnLaunch,如果带此属性的activity为某个task的root activity,那么当它启动后,销毁该task中所有除它意外的activity

finishOnTaskLaunch,当task重新切换回到前台时,附带此属性的activity将被销毁

alwaysRetainTaskState如果带此属性的activity为某个task的root activity,那么该task的其他activity将不会随着时间的变化而不系统解决掉

你可能感兴趣的:(android,浏览器,String)