目录
一、同一进程下,任务栈和singleTask/taskAffinity的关系
3、配置singleTask & taskAffinity不同
二、不同应用/进程下,任务栈和singleTask/taskAffinity的关系
2、配置singleTask,且taskAffinity也不同
现有四个Activity:MainActivity DetailActivity Task2CActivity Task2DActivity
现研究启动模式singleTask和taskAffinity属性和任务栈的情况
一、同一进程下,任务栈和singleTask/taskAffinity的关系
1、不配置singleTask
<activity
android:name=".activity.MainActivity"
android:taskAffinity="com.i.designpattern" />
<activity
android:name=".activity.taskStack.DetailActivity"
android:taskAffinity="com.i.designpattern" />
<activity
android:name=".activity.taskStack.Task2CActivity"
android:taskAffinity="com.i.newTask" />
<activity
android:name=".activity.taskStack.Task2DActivity"
android:taskAffinity="com.i.newTask" />
任务栈打印情况如下:
* Task{b8d873c #21 type=standard A=10148:com.i.designpattern U=0 visible=true mode=fullscreen translucent=false sz=4}
bounds=[0,0][720,1280]
* ActivityRecord{6fd80b3 u0 com.i.designpattern/.activity.taskStack.Task2DActivity t21}
* ActivityRecord{95f8128 u0 com.i.designpattern/.activity.taskStack.Task2CActivity t21}
* ActivityRecord{2273f74 u0 com.i.designpattern/.activity.taskStack.DetailActivity t21}
* ActivityRecord{37978e0 u0 com.i.designpattern/.activity.MainActivity t21}
结论1:同一进程下,不配置singleTask,taskAffinity不同,则任务栈相同(和启动activity相同)。
2、配置singleTask
<activity
android:name=".activity.MainActivity"
android:taskAffinity="com.i.designpattern" />
<activity
android:name=".activity.taskStack.DetailActivity"
android:taskAffinity="com.i.designpattern" />
<activity
android:name=".activity.taskStack.Task2CActivity"
android:launchMode="singleTask" />
<activity
android:name=".activity.taskStack.Task2DActivity"
android:launchMode="singleTask" />
任务栈打印情况如下:
* Task{4b5972a #23