app点击桌面图标每次重新启动

作者: 猿田 | 来源:发表于2017-06-17 11:43 被阅读681次

    昨天同事无意间碰到了这样一种情况,在浏览器中安装app后打开然后按下home键,这时再在桌面点击app图标打开,发现应用重启了,然后多次点击图标每次都重启,问我为什么会出现这样的问题,私下仔细揣摩了下找到了解决办法,以此记录下:

    首先找到manifest中带有:

    <intent-filter>
          <action android:name="android.intent.action.MAIN"/>
          <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    

    这段代码声明的activity,这是app启动的第一个activity,然后在这个activity的oncreate方法中添加如下判断:

    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();
                    }
                }
            }
    

    首先判断该activity是否是根activity(第一个启动的activity),然后回去intent,判断intent中是否带有CATEGORY_LAUNCHER和ACTION_MAIN,如果有就认为是从桌面启动的app,如果后台有已经存在的任务栈,就会把这个任务栈从后台移到前台展示,如果后台没有该app的任何任务栈就会跳过这段代码重新启动app。

    相关文章

      网友评论

        本文标题:app点击桌面图标每次重新启动

        本文链接:https://www.haomeiwen.com/subject/gybvqxtx.html