存在两个Activity: A_Activity 与 B_Activity,其中将A_Activity的启动模式设置为Standard,B_Activity的启动模式设置为SingleInstance.
启动顺序为A -> B -> A -> B -> A.
验证A_Activity和B_Activity所处的栈的ID,A和B的出栈顺序,栈中有多少个A和多少个B?
思路: 因为A为Standard模式,那么每次调用该Activity的时候都会创建一个Activity存于返回栈中。而B设置为SingleInstance模式,会单独开辟一个返回栈,并且该返回栈中只放一个Activity,重复调用也不会再创建。
那么,依据上面的思路,将会产生3个A_Activity和1个B_Activity分居两个不同的栈。通过代码验证之后,发现确实如此。且出栈顺序为A -> A -> A -> B
但是,如果我们将A_Activity的启动模式改为SingleInstance,B_Activity的启动模式改为Standard。启动顺序不变,此时返回栈中又会有多少的A和B呢?
根据上面的思路,应该是1个A_Activity和2个B_Activity分居两个不同的栈。可是只有一个A_Activity和一个处于另外的返回栈中的B_Activity
另外,如果弄三个,A(SingleInstance),B(Standard),C(Standard).启动顺序为A-->B-->C-->A-->B-->C-->A-->B-->C......,但是在第二轮A-->B-->C的时候,B会"消失",虽然设置的是A-->B-->C的跳转顺序,但是后面会变成直接A-->B-->C-->A-->C-->A-->C-->......
也许本人表述能力有点问题,大家如果没看明白问题,可以找我要代码