Android app 退出到后台,点击图标后再次重新启动

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014619545/article/details/88873357
app 退出到后台后,未被杀死,仍在运行,但是点击图标后会重新启动一次,再次重新创建一系列页面

项目中遇到了这个问题,非常影响用户的体验。
解决方法:

在APP的 启动页 中的onceate() 方法中加入此段代码即可。

 if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
            finish();
            return;
        }

其实原因很简单,利用程序安装器打开程序,启动的Intent是没有带Category,而我们自己打开程序是带了Category,所以只需要在配置Intent.ACTION_MAIN的Activity判断下有无Category。然后放到通知栏的时候要根据有无Category 来生成启动的Intent。

或者在 启动页 中的onceate() 方法中,使用下面的代码也可以:

// 避免从桌面启动程序后,会重新实例化入口类的activity
if (!this.isTaskRoot()) { // 当前类不是该Task的根部,那么之前启动
   Intent intent = getIntent();
   if (intent != null) {
      String action = intent.getAction();
      if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) { // 当前类是从桌面启动的
         finish(); // finish掉该类,直接打开该Task中现存的Activity
         return;
      }
   }
}

以上的代码二选一即可。

感谢:

http://www.cnblogs.com/net168/p/5722752.html

猜你喜欢

转载自blog.csdn.net/u014619545/article/details/88873357