apk安装完成后直接打开,按home键返回,再次打开,重新启动

Android 安装完成后直接点击[打开],导致按home键返回,再次打开,走重启流程。如果先点击【完成】再打开,不会有问题。
解决方法:
在lanchActivity的onCreate()方法中加如下代码,一定要在setContentView()方法之前

if(!this.isTastRoot()){
    Intent mainIntent = getIntent();
    String action = main.getAction();
    if(mainIntent.hasCategory(Intent.CATEGORY_LAUNCHER)&&action.equals(Intent.ACTION_MAIN)){
        finish();
        return;
    }
}

完整onCreate()方法代码参考:

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (!this.isTaskRoot()) {
            Intent intent = getIntent();
            if (intent != null) {
                String action = intent.getAction();
                if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) {
                    finish();
                    return;
                }
            }
        } else {
            setContentView(R.layout.activity_launch);
            initData();
        }
    }

!!!特别注意,特别注意,特别注意!!!!
一般在项目中我们的activity都会继承统一的BaseActivity,这个时候一定要确保LaunchActivity的onCreate()方法的执行顺序。建议LaunchActivity就不要继承BaseActivity了,这样处理更简单。
被这个原因坑了很久,之前试了很多方法都没有效果,以为是手机兼容性问题,后来才发现是这个原因,核心代码一定要放在setContentView()方法之前。

至于为什么直接点击【打开】和点击【完成】后再打开会有这样的区别,根本原因不是很清楚,有网友说是两种打开方式app所处的任务栈不一样,是Android系统问题。如果有了解原因的大神可以在评论中分享,大家一起学习学习。

你可能感兴趣的:(apk安装完成后直接打开,按home键返回,再次打开,重新启动)