android launchmode singleinstance后台切换问题

  项目中因为需要设置一个activity B launchMode为singleInstance, 一个activity A为singleTask, 从A进入B后按home键进后台,然后从后台直接进入程序,显示的界面结果为A,应该为B!

原因:

android启动应用程序后会自动创建一个task,如果在程序中打开singleInstance模式的activity,如果没有检测到已存在task,则会重新创建另一个task,这就像第一人在地球上,而带有singleinstance的人在火星上,应用程序则是宇宙,这时如果应用程序在后台没有被销毁的情况下再次点击图标进入程序,会优先加载地球上的人(对地球人比较亲)。


解决办法:

在B中设置一个boolean变量,在初次创建的时候设置为true,复写onBackPressed(),在里面设置boolean值为false(防止进入后台时的最后一个界面是A时也进入B),然后在A中复写onstart()方法,在里面调用B的boolean变量,判断如果为true则直接进入B。

到此完美解决!!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值