Android活动绑定到服务&根据活动的起始位置调用不同的命令。

时间:2012-06-25 05:54:10

标签: android android-intent android-activity

如何让活动以不同的方式行事(调用不同的方法),具体取决于它的启动位置?

我有一个活动,可以在用户选择歌曲时,或者当用户按下“正在播放”按钮时启动。

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

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

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

2 个答案:

答案 0 :(得分:2)

您可以将启动器组件名称(或其他特定字符串)添加为启动Activity的 intent 的附加功能。然后在您的Activity中获取它的意图(使用getIntent())然后检索它的额外内容。然后使用Switch-Case来决定要做什么。

答案 1 :(得分:2)

您可以添加一个标志(或任何其他额外的详细信息),以指示您是否希望在意图发送到活动B时是否启动了歌曲。

所以在活动A:

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");