安装app后直接点击打开带来的问题

问题

项目发版当晚发现的:安装完APP后直接点击打开,接着Home键退到后台,再次打开App 时发现重启了。试了一下去哪儿,陌陌等几个主流app,也有这个问题

原因

The Launcher starts an app using an intent with android.intent.action.MAIN action and android.intent.category.LAUNCHER category. The installer starts an app with the android.intent.action.MAIN action and no category.

大概就是桌面启动app和安装器启动app的Intent不一样,安装完直接open其实已经启动了app,但是桌面点击图标没有认为你已经启动了app,于是重启。

解决办法

在你的app的入口Activity的onCreate()方法最开始加入代码段:

if (!this.isTaskRoot()) { //判断该Activity是不是任务空间的源Activity,false也就是说是被系统重新实例化出来
                //如果你就放在launcher Activity中话,这里可以直接return了
                Intent mainIntent = getIntent();
                String action = mainIntent.getAction();
                if (mainIntent.hasCategory(Intent.CATEGORY_LAUNCHER) && action.equals(Intent.ACTION_MAIN)) {
                    finish();
                    return;//finish()之后该活动会继续执行后面的代码,加return避免可能的exception
                }
            }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,506评论 25 708
  • Correctness AdapterViewChildren Summary: AdapterViews can...
    MarcusMa阅读 8,925评论 0 6
  • 有人扼住他的咽喉 和他搏斗 我是女人 没练过武功 我只对着他笑 这帅哥谁呀 命运呀
    雪莉诗话阅读 281评论 14 13
  • 一 谢正言来了,把柯小艾的世界搅得一塌糊涂。 昨天,山崩海啸般的剧烈震荡让柯小艾无法适应。早上,仍由王姨为谢雨宁准...
    冬妮娅阅读 570评论 1 0
  • 还记得小时候看电视剧的时候,看过这样一个镜头:一个大叔被公司通知明天不用来了。第二天瞒着妻子,照样夹着公文包和...
    卖萌娶媳妇的熊阅读 233评论 0 0