动态设置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不生效