Android之 部分系统安装器bug导致应用重启解决方法

《Android之 部分系统安装器bug导致应用重启解决方法》
转载请注明来自 傻小孩b_移动开发(http://www.jianshu.com/users/d388bcf9c4d3)喜欢的可以关注我,不定期总结文章!您的支持是我的动力哈!

当第一次应用安装的时候,选择打开的时候,当我们进入应用后,按住Home键切回桌面,然后才重新进入应用,会发现应用会重新启动。

初次判断是部分手机系统安装器的bug,即使我们在AndroidManifest的配置设置了启动页模式,如下:

  
            
                

                
            
        

但是通过安装器完成安装后,点击“打开”后启动的应用,启动页Activity不会持有AndroidManifest配置的action和category。目前还找不到比较权威性的解释。

目前解决方法

解决方法思路很简单:首先在首次启动的activity(设置action时MAIN的activity),在创建前(oncreate())先判断当前的activity,intent是否持有配置的action和category,没有的话就finish后在startActivity同个activity实例出来。如下代码:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
      //FLAG_ACTIVITY_RESET_TASK_IF_NEEDED 可以表示是否从桌面进来
        if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED) == 0) {
          // 如果没有检测到配置的action和category, finsh -> start
            finish();
          
            Intent mIntent = new Intent(this, splashActivity.class);
            mIntent.setAction(Intent.ACTION_MAIN);
            mIntent.addCategory(Intent.CATEGORY_LAUNCHER);
            mIntent.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
            mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(mIntent);
        }
        super.onCreate(savedInstanceState);
    }

目前这种方法可以解决,如果有读者大神知道什么原因导致的,欢迎联系交流哈~

傻小孩b mark共勉,写给在成长路上奋斗的你

你可能感兴趣的:(Android之 部分系统安装器bug导致应用重启解决方法)