2010-06-16 50 views
4

我的應用程序有一個名爲「Main」的單個入口活動。在「主」中,我打電話給其中三個 其他活動A,B或C(根據首選項),然後立即退出/完成 「Main」,以便只有A,B或C處於活動狀態。如何重用堆棧頂部的活動

我還在通知欄 中有一個永久通知,用戶可以隨時拉下(隨時)以方便地重新啓動我的應用程序(調用意圖 與「主」組件)。

的問題是,如果我的應用程序已經在運行和用戶下拉通知 並重新啓動,我得到A或B或C所述先前活動上運行(也有,或 B或C)。我該如何避免這種情況(即重複使用堆棧頂部的活動)?

我試過Intent.FLAG_ACTIVITY_ *並沒有任何工作。我已經在Manifest中嘗試了launchModes
,它似乎也沒有工作。有任何想法嗎?感謝所有幫助.... JH

回答

5

我找到了一種方法可以做到這一點我想要做什麼(雖然我還在測試它)...

在Android清單,爲活動A,B和C,I加入下列行:

機器人:launchMode =「singleTask」

這具有的結果重用活動A,B,或C,如果他們已經在 頂部堆疊的,以便他們不會在自己之上重新啓動(其中 需要按兩次BACK按鈕退出任務)。

+1

從通知啓動活動時,我發現這很有用,其中堆棧最終會有兩個或更多(每個通知一個)同一活動的實例。結合onNewIntent,可以用新內容更新現有活動(通過Intent extras)。 – 2011-02-24 13:01:27