2012-04-27 31 views
3

我有一個4或5個活動的應用程序!比方說,A,B,C,D和E.如何處理多個活動之間的相互作用?

從每個活動跳到其他任何活動或多或少是可能的!

比方說,用戶進入一個 - 「乙 - >電子 - > D.

現在,他想打開B(再次)。我現在希望我的應用程序能夠識別活動堆棧中已有一個活動B並重新激活它(或者至少完成舊B並創建一個新B)。

我不想在創建新活動時完成所有活動,因爲用戶可能經常使用後退按鈕。

可能的解決方案是:自己創建一個活動堆棧,並以捆綁方式處理它或使用一些靜態結構。

但是必須有一個更簡單/更好的方法,是嗎?

感謝您的幫助!

+0

不是['FLAG_ACTIVITY_CLEAR_TOP'](http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP)你需要什麼? – 2012-04-27 14:06:45

+0

@ a.ch。他想要的恰恰相反。 CLEAR_TOP將A→B→E→D→B改爲A→B(清除堆棧頂部)。 – toto2 2012-04-27 14:28:02

回答

3

您可以在清單中的啓動模式標記中使用singleInstance值或singleTask值。

android:launchMode=["multiple" | "singleTop" |"singleTask" | "singleInstance"]

According to android developers fundamentals

singleTasksingleInstance模式也彼此不同僅在一個方面:

singleTask活動允許其他活動是其任務的一部分。它始終是其任務的根源,但是其他活動(必要的standardsingleTop活動)可以啓動到該任務中。

A singleInstance另一方面,活動不允許其他活動成爲其任務的一部分。這是該任務中唯一的活動。如果它開始另一項活動,那麼該活動將被分配給不同的任務 - 就好像FLAG_ACTIVITY_NEW_TASK是有意圖的。

+1

嘿VidaLux!這似乎是解決方案!我會在下週檢查!非常感謝 – Michael 2012-04-27 21:25:10