Android launchMode

作者: pj0579 | 来源:发表于2019-10-17 23:09 被阅读0次

launchMode需要说下几个概念:
task:可以包含多个不同进程的activity。
activity: 只属于某个进程。

可以通过XML设置的有四种:
standard:默认方式

singleTop:当C设置这个属性 A->B>C 打开C时 还是 A->B>C,会调用onNewIntent();
当C设置这个属性 A->C->B 打开C时 还是 A->C->B->C

singleTask:当taskAffinity相同时,并且C设置这个属性 A->C->B 打开C时 还是 A->C;单独设置taskAffinity无效,走的还是默认的taskAffinity,相当于standard;单独设置singleTask,走的是默认taskAffinity,然后会清除之后的activity。

singleInstance:开发中使用最少,我没有使用过,使用时会新建一个task,并且只有一个实例。

然后是代码通过FLAG 组合设置 组合非常多
常用的有:
FLAG_ACTIVITY_CLEAR_TOP+FLAG_ACTIVITY_SINGLE_TOP 相当于默认taskAffinitysingleTask

单独设置FLAG_ACTIVITY_CLEAR_TOP:A->B-C 打开 B设置属性打开 A->B 重建B

FLAG_ACTIVITY_SINGLE_TOP与xml设置一样
还有很多不一一列举

还有的考点是onNewIntent返回的intent是最新的,但是如果不调用setIntent设置。其他地方getIntent获取的是之前的intent。

相关文章

网友评论

    本文标题:Android launchMode

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