美文网首页
Activity的启动模式与启动标志

Activity的启动模式与启动标志

作者: WaterYuan | 来源:发表于2020-02-15 15:17 被阅读0次

关于使用new_task不生效的场景:
前提:
ActivityA是standard标准启动模式,taskAffinity指定为AffinityA
ActivityB是singleTop栈顶复用启动模式,taskAffinity指定为AffinityB
步骤:
栈AffinityA中栈顶的ActivityA先不带new_task启动singleTop的ActivityB,会在AffinityA栈顶新建ActivityB(虽然ActivityB的taskAffinity是AffinityB),
此时AffinityA的栈顶是ActivityB,
再带new_task启动ActivityB,复用栈AffinityA中的ActivityB,不会新建AffinityB,更不会在AffinityB中新建ActivityB

栈AffinityA中启动ActivityB(ActivityB的taskAffinity被指定为AffinityB)
即使带了new_task也不一定会新建栈AffinityB
而是要先判断ActivityB的启动模式,及是否带了singletop、cleartop标志等

新建栈与栈顶复用的优先级(冲突):
不满足栈顶复用才会新建栈

启动一个启动模式是标准模式的Activity,不一定会新建该Activity
前提:
ActivityA是standard标准启动模式,taskAffinity指定为AffinityA
ActivityB是standard标准启动模式,taskAffinity指定为AffinityB
步骤:
栈AffinityA栈顶的ActivityA先用new_task启动ActivityB
会新建栈AffinityB,并在该栈新建ActivityB
当前前台栈是AffinityB,栈顶是ActivityB,继续 用new_task启动ActivityB,会复用ActivityB,不会新建ActivityB

对 FLAG_ACTIVITY_NEW_TASK、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_SINGLE_TOP 的理解

相关文章

网友评论

      本文标题:Activity的启动模式与启动标志

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