安卓按下Home键至手机桌面后,重新点开应用时无法进入退出时的页面

现象发生的情况是安装完成之后点击打开运行APP,从MainActivity进入AActivity后,按home回到主界面,再点击图标把APP切回前台运行的话发现打开的是MainActivity不是AActivity。

但是如果安装的时候点击完成,再打开APP就不会这样,具体原因未知,可能是系统的bug吧。

 

解决办法是在MainActivity中加上:

if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
            //结束你的activity
            finish();
            return;
        }

功能就是如果是从栈底把MainActivity移到栈顶的话就finish掉,为了确保这个生效,我们就要修改活动的启动模式并且确保打开AActivity的时候不能栈里还有MainActivity,也就是不能把它finish掉。

 

然后说一下if后的语句的意思:

getIntent().getFlags()获取的是一个int值,他代表的是获取到的全部flag的或集,然后再Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT进行一下与运算,前者包括后者的话,就为1了;反正为0。

因为flag的个数太多,不便做成集合方式,因此采取了二进制方式判断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值