Android app 退出到後臺,點擊圖標後再次重新啓動

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。

或者

// 避免從桌面啓動程序後,會重新實例化入口類的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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章