解决在安装器中打开APP后,当APP从后台回到前台时,会重新启动的bug

1. 前言

最近很意外地发现了一个系统级别的bug。具体描述如下:

第一种操作:

  • 安装APP成功后,在安装器中点击“打开”,APP启动,先进入闪屏页,然后才进入首页;
  • 按下Home键,回到桌面;
  • 再点击APP的图标,APP并不是打开之前已经加载完的首页,而是重新进入闪屏页,然后再进入首页。

第二种操作:

  • 安装APP成功后,关闭安装器,回到桌面,点击APP的图片,APP启动,先进入闪屏页,然后才进入首页;
  • 按下Home键,回到桌面;
  • 再点击APP的图标,APP直接打开之前已经加载好的首页。

是不是很神奇!在网上搜了一下,有两篇博客提供了解决方案。

Android应用Launcher重复启动问题

怎样防止App在后台运行,点击应用桌面图标重新启动?

2. 解决方案

第一种:

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

第二种:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
            finish();
            return;
        }
        setContentView(R.layout.activity_welcome);
    }

上面两种方案都是在APP的第一个Activity的onCreate方法中进行操作。不过经过我的测试,第一种方案有效,第二种方案在小米手机上没有效果。

发布了43 篇原创文章 · 获赞 34 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/Fantasy_Lin_/article/details/80152257