关于android四种launchMode中singleInstance的疑问

fasde 发布于 2013/05/28 22:40
阅读 7K+
收藏 1
有三个Activity:A、B、C。 
A的launchMode为singleInstance, 
B、C为默认的standard, 
第一次A--B--C--A跳完之后,为什么从A进入了C并且是之前的实例C,而不是想象中的新创建一个Activity B的实例 ?
加载中
0
loki_lan
loki_lan
假设A处于Task1(只能有A,因为A是singleInstance),B、C处于Task2中,根据启动顺序可以知道C处于Task2中的栈顶,从A回到C的原因就是因为从Task1回到Task2,而C处于Task2栈顶,因此,是进入了之前的C,而不是B,此时,如果你按返回键,跳转的肯定是B,再按返回键,就回到了A
fasde
fasde
回复 @铂金小猫 : 了解,多谢多谢!
loki_lan
loki_lan
回复 @fasde : 是的
fasde
fasde
也就是说:因为A是singleInstance,由 A start的Activity如果在task2中已经有其实例,就不会再次被创建。而第二次A->B的过程其实就是task1->task2的过程,所以显示的是task2栈顶的C。 可以这样理解吗?
0
小牧
小牧
Standard 模式中,如果A到B,A没有被finish,在B中按返回键。 A一样不会被重建。
fasde
fasde
按返回键到A是肯定不会重建A的实例的吧,我说的是startActivity跳转。
返回顶部
顶部