反正 就是想起啥就看点啥,记点啥
隐约记得以前应该也是有去看过然后了解过的,但是当我再一次看到这个的时候还是,emmm,不知道具体啥意思。小计一下,增加印象。
1、安卓中有四种launchMode模式分别是:
(1) standard
(2) singletop
(3) singletask
(4) singleinstance
这里我只说一下自己的理解,一些文字性的描述,因为看了一篇大佬讲这个的文章,实在是,好!
链接 : https://blog.csdn.net/liuhe688/article/details/6754323
(1) standard 标准的launchMode模式,不写的时候默认的是standard模式
如果从activity A 跳转到 A,每一次不管activity是否已经存在一个实例对象,在跳转之后都会自动新建一个实例对象。这个时候如果你点返回,跳一次,需要点一次返回,跳多少次,就有多少个实例对象,就需要返回多少次才能到第一个实习对象。
(2) singleTop
如果从activity A 跳转到 A,系统会去判断,如果这个A在栈顶,就不去新建一个实例对象,如果不在栈顶,就新建,那么这只有一个acticity,一直在栈顶的位置,所以肯定就 不会新建了,所以点一次返回就会回到home界面。
如果从A跳到B,又从B跳到A,B到A的这个过程中系统发现这个A不在栈顶,所以就去新建了一个A对象在栈顶,此时点击返回,需要点击3次到HOME,第一次到B,第二次到第一个A,第三次回到HOME。
(3)singleTask
如果从A到B,然后B又到A,这个时候,B的实例对象被出栈了,因为当从B跳转到A的时候系统发现有A的实例对象,于是将A之上的实例都出栈。只需要点一次返回键就到HOME
(4)singleInstance
这个其实我也看的二懂二懂得。大概就是:
假如从A(standared)到B(singleInstance),会新建一个栈来存放B,然后点击返回,先回到A栈,并且在A栈里面又新建一个A实例,然后点击返回,回到初始的A实例,再点击返回,回到,B栈,那位大佬,称这个为“回归”,然后再次点击返回的时候就可以回到HOME了。
总结就是:
singleInstance 只有一个实例
singleTask 栈内复用模式(onNewIntent)
singleTop 栈顶复用模式(onNewIntent())
standard 默认模式