爬坑!解决应用安装完成打开和返回桌面打开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()后面加一个判断就哦了!!!

你可能感兴趣的:(入坑与爬坑)