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

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

2017-01-09 09:25 411 查看
这次碰到的这个问题必须要来记录一下了,毕竟真的很少有人会发现这个问题。这还是公司的测试姐姐测出来的,一开始反映的是三星华为小米都有这个问题,但是测的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()后面加一个判断就哦了!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐