首页 新闻 会员 周边 捐助

Android启动模式的小Bug

0
悬赏园豆:50 [已关闭问题] 关闭于 2016-10-10 21:44

存在两个Activity: A_Activity B_Activity,其中将A_Activity的启动模式设置为Standard,B_Activity的启动模式设置为SingleInstance.

启动顺序为A -> B -> A -> B -> A.

验证A_ActivityB_Activity所处的栈的ID,AB的出栈顺序,栈中有多少个A和多少个B?

 

思路: 因为AStandard模式,那么每次调用该Activity的时候都会创建一个Activity存于返回栈中。而B设置为SingleInstance模式,会单独开辟一个返回栈,并且该返回栈中只放一个Activity,重复调用也不会再创建。

 

那么,依据上面的思路,将会产生3A_Activity1B_Activity分居两个不同的栈。通过代码验证之后,发现确实如此。且出栈顺序为A -> A -> A -> B

 

但是,如果我们将A_Activity的启动模式改为SingleInstanceB_Activity的启动模式改为Standard。启动顺序不变,此时返回栈中又会有多少的AB?

 

根据上面的思路,应该是1A_Activity2B_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-->......

 

也许本人表述能力有点问题,大家如果没看明白问题,可以找我要代码

Rocking7189的主页 Rocking7189 | 初学一级 | 园豆:172
提问于:2016-09-18 00:10
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册