2011-01-10 71 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