爬坑!解决应用安装完成打开和返回桌面打开app启动两次应用的问题

这次碰到的这个问题必须要来记录一下了,毕竟真的很少有人会发现这个问题。这还是公司的测试姐姐测出来的,一开始反映的是三星华为小米都有这个问题,但是测的vivo却没有这个情况,我就以各个手机厂商刷的定制系统不一样我无法控制搪塞过去了。后来发现这个问题会导致一个无解的大bug产生,使我不得不重新审视一遍这个问题。而就在这时候,神奇的事情发生了......

我先描述一下这问题的本质吧。每当我们安装一个apk的时候,安装完成时会有两个按钮,分别是“完成”和“打开”。这个时候我们肯定为了方便起见,会直接点击打开,进入应用。然后遨游在酣畅淋漓的app里。这个时候我们点击home键回到桌面,进行别的啥操作,然后再回到这个应用,会发现应用这时候是重新加载了的!而不是常规的切到后台再回到前台保存之前的操作及页面!这是为啥呢?为啥会重新启动呢?

于是后来我又进行测试,发现如果当你安装完成时点击的是“完成”,那么这个情况就不会复现,也就是说,进行以上同样的操作,程序不会重新启动,而是直接由后台切到前台了!数据和页面都能重新恢复。

于是最简便的方式,我在onCreate里加了打印,果然印证了我的猜想!安装完成点击“打开”,进入应用,点击home,再回到应用,会有两次打印;

而安装完成点击“完成”,进入应用,点击home,再回到应用,只会有一次打印!那么问题就明了了!于是上网搜索解决方法如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (!isTaskRoot()) {
        finish();
        return;
    } else {
        setContentView(R.layout.activity_main);
    }
}

在MainActivity的onCreate方法的super.onCreate()后面加一个判断就哦了!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值