目标:我们的目标是new一个新的栈,而这个栈的功能是要求和其他f非singleInstance的栈一样,
可以通过standard或者singleTop堆Activity
分析:首先排除 standard和singleTop 这两个都是不能new 新栈的,实验下来即便配上taskAffinity属性也没有任何反应
而singleInstance虽然可以有新栈,但是栈内只能有一个实例,配上taskAffinity同样没有任何反应,这样的话也不好用,
所以只有一个选择了,singleTask配上taskAffinity
----------------------------------------------------------------------------------------------------------------------
测试:
MainActivity跳--->Test1跳--->Test2跳--->Test3跳--->Test4
其中Test2是singleTask的,但是配上了taskAffinity属性。
测试下来发现Test3,Test4都会跟在Test2所开启的task内,而不会跟在MainActivity的栈内,证明这种方式有效!
-------------------------------------------------------------------------------------------------------------
疑问:上面的测试里面如果Test2换成了singleInstance,后面的Test3,Test4会在哪个栈内?
答:会跟在MainActivity的栈内!
这个时候按回退键你会发现会跳过Test2,只有当MainActivity栈内的所有Activity都回退完了,才会回退到Test2.