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