2016-08-23 76 views
4

假設我有堆棧中活動A,B,C的活動實例A1,B1,A2,B2,C1。我如何從C1中遍歷Activity實例B1?堆棧中的活動之間的遍歷

讓我們概括一下B1和C1之間會有'n'個活動。

我不想從C1創建B的新實例。

+0

你能解釋一下嗎? – Krish

+0

使用'ViewPager' https://developer.android.com/reference/android/support/v4/view/ViewPager.html –

+0

@WaqasRaja我問過如何遍歷活動。不使用標籤在活動內部進行遍歷。所以回答不是ViewPager – tpk

回答

3

這實際上是一個非常糟糕的Android體系結構。如果您在Activity上創建多個實例,則無法專門解決它們,例如:「返回ActivityB的第一個實例」。 Android不是這樣設計的。

您應該避免創建Activity的多個實例。使用相同的實例並通過交換底層數據創建多個實例的「錯覺」,並在顯示器上添加狀態轉換,以使其看起來像您正在啓動另一個Activity

另一種可能的解決方案是使用大量的startActivityForResult(),並將信息返回給呼叫Axctivity,接下來該做什麼。

欲瞭解更多詳情,請參閱(即使這些問題是專門關於使用FLAG_ACTIVITY_REORDER_TO_FRONT,問題仍然是基本相同):

+0

'使用同一個實例並通過交換出底層數據創建多個實例的「錯覺」更加困難 - 我如何使用相同的活動實例?你可以解釋嗎?謝謝。 – tpk

+0

爲了幫助您,您需要解釋爲什麼要創建同一個「活動」的多個實例。舉一個你的應用中導航的例子。不要在評論中這樣做。只需編輯您的原始帖子,並在最後添加更多詳細信息。 –

+0

我只是對棧中的遍歷好奇。所以我無法在應用中提供導航細節。讓我想想一個場景並回來。 – tpk

1

以意圖使用標誌。

官方文檔:https://developer.android.com/guide/components/tasks-and-back-stack.html

傳遞標誌意圖

FLAG_ACTIVITY_CLEAR_TOP

你也可以根據自己的需要在一個單一的意圖PAAS多個標誌位。

希望這會有所幫助。

+0

其實這是行不通的。它將把任務清除回B2,而不是B1。 OP在堆棧中有多個「Activity」的多個實例,他希望能夠回到特定的一個。 –