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。

到此完美解决!!!

发布了2 篇原创文章 · 获赞 2 · 访问量 1828
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览