2011-01-10 76 views
0

我有以下我想達到的目的:安卓:通過活動的運動,而不彈出他們

活動A - >活動B

活動B - >活動A

在紙面上,這聽起來像同樣的事情只是按下後退按鈕。問題是,我不希望活動B被彈出。

我需要的東西沿moveTaskToBackground的行,但爲一個單一的活動。這樣當我再次從A返回時,它可以恢復。

爲了給你一些上下文,活動A是一個項目列表。活動B顯示有關該項目的信息並播放附加在其上的歌曲。從B回到A時,我希望那首歌能繼續演奏,如果這個人在A中選擇了相同的選項,他們只是恢復活動。否則殺死那個活動並且用新的細節開始一個新的活動並播放新的歌曲。

非常感謝。

回答

1

你需要尋找到ActivityGroupLocalActivityManager。 TabActivity(如其他答案中的建議)實際上擴展了ActivityGroup。

下面是一個簡單的例子,讓你開始:

使用此啓動活動答:

LocalActivityManager manager = getLocalActivityManager(); 

//A_ID == 1 
Window activityWindow = manager.startActivity(A_ID, intent_activityA); 
setContentView(activityWindow.getDecorView()); 

或此啓動活動B:

//B_ID == 2 
Window activityWindow = manager.startActivity(B_ID, intent_activityB); 
setContentView(activityWindow.getDecorView()); 

活動緩存和與指定的ID相關聯。如果您多次使用相同的id調用startActivity,則實際使用緩存的活動(並非總是,取決於您使用的意圖)。如果需要,您可以輕鬆地從緩存中刪除任何活動。請查看LocalActivityManager瞭解更多詳情。

+0

謝謝inazaruk,這就是我一直在尋找的。 – Alex 2011-01-11 18:26:49