当前位置:   article > 正文

解决在安装器中打开APP后,当APP从后台回到前台时,会重新启动的bug_app第一次安装完后退到后台再唤醒到前台会重启一边

app第一次安装完后退到后台再唤醒到前台会重启一边

1. 前言

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

第一种操作:

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

第二种操作:

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

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

Android应用Launcher重复启动问题

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

2. 解决方案

第一种:

  1. @Override
  2. protected void onCreate(Bundle savedInstanceState) {
  3. super.onCreate(savedInstanceState);
  4. if (!isTaskRoot() && getIntent() != null) {
  5. String action = getIntent().getAction();
  6. if (getIntent().hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) {
  7. finish();
  8. return;
  9. }
  10. }
  11. setContentView(R.layout.activity_welcome);
  12. }

第二种:

  1. @Override
  2. protected void onCreate(Bundle savedInstanceState) {
  3. super.onCreate(savedInstanceState);
  4. if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
  5. finish();
  6. return;
  7. }
  8. setContentView(R.layout.activity_welcome);
  9. }

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

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/144844
推荐阅读
相关标签
  

闽ICP备14008679号