2、Android 深入解析 Activity 的 launchMode 启动模式,Intent Flag,taskAffinity
心得 :
A activity 启动B activity (activity默认askAffinity为包名)
当B的启动模式为singleTask或singleInstance时,则启动B taskAffinity 所在的栈
当B的启动模式为standard或singleTop时,则启动与A taskAffinity 所在的栈
intent flag:
该标志必须和FLAG_ACTIVITY_NEW_TASK一起使用。
A->B->C C 启动A 的intent带有FLAG_ACTIVITY_CLEAR_TOP ,A,B,C 销毁,A会重新启动,如果intent还带有FLAG_ACTIVITY_SINGLE_TOP,A就不会销毁
A以FLAG_ACTIVITY_NEW_TASK 启动B
如果B是主栈 (mainactivity所在的栈),则与standard模式一样;如果B是次栈,则启动B taskAffinity所在的栈,栈里面的顺序不变
一离开就会被销毁
如果找到B存在,则调用B所在的栈操作,如果B不存在,则打开新的栈放在新的任务列表里
网友评论