动态设置activity的launchmode

1,静态设置activity的launchmode是在xml中配置activity标签的launchmode属性,就不多做介绍了

 

 

2,主要记录下动态设置activity的launchmode的  singleInstance和  singleTask

 

singleTask是当前任务栈中只有一个(a_activity),跟app其他activity同属一个task,并且复用当前a_activity时,会移除a_activity上面的其他activity

动态设置时可以使用  

Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP

达到singleTask的 效果

 

singInstance是跟app其他activity不在同一个任务栈,是一个单独的任务栈,intent中有个FLAG_ACTIVITY_NEW_TASK,如果单独使用这个flag,会发现新activity和之前的activity是在同一个task中的,需要搭配设置activity的taskAffinity属性一起使用,因为FLAG_ACTIVITY_NEW_TASK是会查找activity对应的taskAffinity,而一般activity的taskAffinity对应的是包名,如果没有特殊设置taskAffinity,会导致FLAG_ACTIVITY_NEW_TASK不生效

posted @ 2021-03-09 10:38  凤雏小呆  阅读(470)  评论(0编辑  收藏  举报