2012-06-25 34 views
1

你如何得到一个行为不同的行为(调用不同的方法),取决于它从何处启动?Android活动绑定到服务并根据活动的开始位置调用不同的命令。

我有一个活动,当用户选择一首歌或用户按下'正在播放'按钮时启动。

理想情况下,如果从活动a中选择了一首歌曲,则活动b绑定到该服务,并通知该服务播放所选歌曲。

如果从活动a中选择'正在播放'按钮,则活动b绑定到服务,但不会告诉它开始播放歌曲。

我已经知道,这是可以通过意向,广播或只是一堆if语句实现的,但我不确定如何最好地实现这一点。谢谢你的帮助。

回答

2

您可以添加一个标志(或任何其他额外的细节),以表明您是否想要的歌曲开始或不是在故意发送到活动B.

所以在活动答:

Intent startBIntent = new Intent(this, ActivityB.class); 
Bundle extraDetails = new Bundle(); 
extraDetails.putBoolean("isPlaySong", true); 
startBIntent.putExtras(extraDetails); 
startActivity(startBIntent); 

然后在Activity B的onCreate()中,检索详细信息:

Boolean isPlaySong = getIntent().getExtras().getBoolean("isPlaySong"); 
2

可以作为额外添加启动组件的名称(或其他特定的字符串,它是唯一的),以意图,在你的活动开始Activity.Then得到它的意图(使用getIntent())和检索它的extras.Then使用开关 - 决定要做什么。