(完美解决)App点击Home键后,再次点击APP图标,APP重启回不到点击home键前的那个界面

本文详细介绍了如何解决在Android应用中,由于LAUNCHER Activity的launchMode属性设置为singleTask,导致应用重启时直接返回到MainActivity的问题。提供了解决方案,包括修改launchMode属性和在引导页onCreate方法中添加特定的判断逻辑。
摘要由CSDN通过智能技术生成

在这个即将国庆的日子里,碰到这么个神奇的bug;经过查找发现竟然是前人留下来的坑;

在你的LAUNCHER的Activity里面查看是否有 android:launchMode="singleTask"这个属性,如果有这个属性就把他去掉,或者改成singleTop。

不然当你进入后台时,再次重启APP他是进入的MainActivity。然后在singleTask这个属性下是把栈内的除了MainActivity的Activity出栈。

导致你一进来就是MainActivity.(你们也有可能是引导页,每个人项目都不一样,但是只要修改如下图框框所示的那个Activity即可)

因为我这边是tcp长连接所以他进来又进了一遍MainActivity。

当你把那个属性去掉的时候还不行的话,那就在你的引导页的onCreate方法加上下面这个判断:

// 避免从桌面启动程序后,会重新实例化入口类的activity
if (!this.isTaskRoot()) { // 判断当前activity是不是所在任务栈的根
    Intent intent = getIntent();
    if (intent != null) {
        String action = intent.getAction();
        if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) {
            finish();
            return;
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值