BUG描述
-
操作流程:打release包——安装apk——点选“打开”按钮——点Home键——点桌面图标
-
现象:App重启
当然这个bug一般用户也很难注意到,它的产生必须满足下面的条件:
- 点击apk文件安装app
- 安装完成界面点击打开按钮
- 点击Home键,进入系统桌面,此时app退到后台
- 再点击桌面上启动图标
我们可以看到,在bug情况下启动app时,SplashActivity(app的根Activity)再次创建并叠加到Task任务栈上了,
理应只会出现在栈底的SplashActivity出现在了其他位置,所以这里我们直接判断了app根Activity SplashActivity的位置
在app的SplashActivity(app的根Activity)的onCreate方法中通过 isTaskRoot() 方法来判断是否是任务栈中的根Activity,如果是就不做任何处理,如果不是则直接finish掉;
当我们遇到上面的问题时,使用以下方法就可解决:
public class SplashActivity extends BaseActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (!this.isTaskRoot()) {//判断是否为根Activity
I