美文网首页
Android 的singleTask和singleInstan

Android 的singleTask和singleInstan

作者: woshishui1243 | 来源:发表于2020-09-20 21:14 被阅读0次
启动模式 解释
standard 默认的启动模式。每次启动Activity都会在任务栈中实例化,在该Activity所在的任务栈中会存在多个Activity的实例,当返回的时候,需要每个Activity分别出栈。
singleTop 如果在任务栈顶存在Activitiy实例,则通过onNewIntent激活重用;否则,创建Activitiy实例,在任务栈中会有多个Activity实例。
singleTask 默认的情况下,如果在任务栈中不存在Activity实例,创建实例;否则通onNewIntent激活重用,在重用该实例的时候,会将该实例上的其他activity的实例清除。在对应的任务栈中有且仅有一个实例。当然如果和android:taskAffinity配合使用,则可以在开启或者复用另外任务栈中来创建或重用Activity实例。由该Activity启动的其他Activity默认的都会在该Activity所在的任务栈中,除非设置android:taskAffinity或将Activity 的launchMode设置为singleInstance。
singleInstance 在新的任务栈中开启,并且该新的任务中有且仅有这一个Activity实例,并且该Activity实例是在整个系统中有且仅有一个。复用Activity实例时,通过onNewIntent进行激活。由该Activity启动的其他Activity不会在该Activity所在的任务栈中,可以在已有的任务栈中,也可以在新创建的任务中。

总结

1)当启动模式为standard和singleTop的时候,系统只会在同一任务中对Activity进行创建或复用;
2)当启动模式为singleTask的时候,系统首先会检测该Activity对应的android:taskAffinity任务栈是否存在,若存在,则将该任务切换到前台重用该任务,然后在该任务中查找实例;否则重新创建任务
3)当启动模式为singleInstance的时候,系统首先会检测该Activity实例是否存在,若存在,则将相应的任务切换到前台,重用该实例,否则创建新任务,在新的任务中创建实例。

作者:好人静
來源:CSDN
著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

相关文章

网友评论

      本文标题:Android 的singleTask和singleInstan

      本文链接:https://www.haomeiwen.com/subject/fucpyktx.html