2013-08-06 35 views
0

如果我有一個活動A開始活動B,它啓動活動A的另一個實例,我想返回到前一個活動A(後一個棧中的第一個活動),所以我'我嘗試過使用意向標誌FLAG_ACTIVITY_CLEAR_TOP,但當然這會將頂級活動視爲運行實例而不是第一個活動。如何擺脫活動A的第二個實例&活動B將會話恢復到第一個活動A?Android活動流程FLAG_ACTIVITY_CLEAR_TOP

A - >乙 - > - >回到第一A和第二名一個& B.

我的目標是API級別10

+0

可能有更好的方法。如果你確切地告訴我們你想要完成什麼,或者爲什麼然後我們可以幫助你找到更好的方法。 – codeMagic

回答

1

你可以嘗試設置FLAG_ACTIVITY_NO_HISTORY活動時B開始活動A的第二個實例。沒有保證,但它可能工作。

當然,如果活動B正在合作,您可以從A的第二個實例返回狀態,B可以識別並立即完成()本身。但是,如果你有A-> B-> C-A,這並不能解決問題。

+0

謝謝,這實際上有效,但在閱讀文檔中的更多標誌值之後,FLAG_ACTIVITY_PREVIOUS_IS_TOP絕對適用於我的情況,但是,它根本無法像文檔描述的那樣工作。實施問題在這篇文章中討論http://justanapplication.wordpress.com/tag/flag_activity_previous_is_top/ – Ryan

0

您可以通過設置標誌FLAG_ACTIVITY_SINGLE_TOP來嘗試。否則,您需要自行監控您的活動並在需要時路由到需要的地方。

1

嘗試這些標誌:

addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); 

從文檔爲FLAG_ACTIVITY_CLEAR_TASK

...此標誌將導致將與活動相關的任何現有任務的活動之前被清除開始。也就是說,活動成爲空的任務的新根,和任何舊的活動完成。這隻能與FLAG_ACTIVITY_NEW_TASK結合使用。

請注意,它不僅會清除活動,還會創建一個全新的任務。例如,如果活動A不是您的「家」活動,則這可能並不理想。

+0

這是我的希望,不幸的是FLAG_ACTIVITY_CLEAR_TASK被添加到API級別11中,我的目標是API級別10。 – Ryan

+0

很高興知道。您可能希望將其添加到問題中,以便更明顯地看到它。 – Geobits

+0

絕對,謝謝。 – Ryan

相關問題