您的位置:首页 > 移动开发 > Android开发

android launchmode singleinstance后台切换问题

2015-10-23 10:22 471 查看
项目中因为需要设置一个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。

到此完美解决!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: