2011-04-11 42 views
4

我使用標記FLAG_ACTIVITY_SINGLE_TOPFLAG_ACTIVITY_CLEAR_TOP回到我以前的「標準」活動。我使用FLAG_ACTIVITY_SINGLE_TOP來防止重新創建新實例。但是我發現國旗FLAG_ACTIVITY_SINGLE_TOP被忽略,活動完成並重新創建。無法在一個意圖中同時設置FLAG_ACTIVITY_SINGLE_TOP和FLAG_ACTIVITY_CLEAR_TOP?

  • 這是我在文檔中找到的。 FLAG_ACTIVITY_CLEAR_TOP:它說你可以在使用FLAG_ACTIVITY_CLEAR_TOP時添加FLAG_ACTIVITY_SINGLE_TOP來防止「完成 - 重新創建」。

  • 這是另一個文檔。 FLAG_ACTIVITY_CLEAR_TOP

    注意:如果指定的活動的啓動模式爲「標準」,它也是從堆棧中移除一個新的實例在其位處理傳入的意圖啓動。這是因爲當啓動模式爲「標準」時,總是爲新的意圖創建新實例。

我誤解了第一文檔?

回答

5

的文件表明,FLAG_ACTIVITY_CLEAR_TOP是你所需要的設定。但是您實際上必須同時設置以防止再次創建活動。

這做的伎倆在我的情況:(主要是,我想回到活動)

Intent tabIntent = new Intent(this, Main.class); 
    tabIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(tabIntent); 
0

檢查這一項。
Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_SINGLE_TOP)

相關問題