在不同的task 中打开同一个Activity 会被创建多个实例分别放入每一个task
singleTask 全局唯一
当其他task启动这个activity 的时候 它会和自己的task 一起 置于启动它的task的上方,这种方式的叠加只适合前台任务 当按home键盘或者多任务键的时候,重叠的task会马上 分离
android:allowTaskReparenting=“true”** android9.0 -10 失效了 11是好的
当启动这个activity 的时候它会在启动他的task上面,当时如果再启动他原本的app的时候 它会回到自己的task,并且之前启动他的task 里面已经不存在这个activity
singleInstance 一个task 中只有一个activity
在最近任务里看到的task 不一定还活着, 看不到的不一定死了 例如 singleinstance
android:taskAffinity="" 默认是app 包名
当启动activity 会直接接入当前的task
但对于设置了 android:launchMode=“singleTask” 的activity,系统会 先比较Activity的taskAffinity 是否 相同
如果相同 正常入栈
如果不同 activity会去寻找和它的taskAffinity相同的task入栈 如果找不到系统就会帮他创建一个Task,
任务列表显示的多个Task 它们的taskAffinity 需要不一样
如果taskAffinity一样 则只会出现最新的那个Task
android:launchMode=“singleTop”
和(standard) 几乎一样启动时不考虑 taskAffinity
唯一的区别是 singlTop 会重用栈顶的Activity