在安卓系统中从活动(Activity)向服务(Service)发送命令

5
我有一个活动类和一个带有媒体播放器的服务。用户从SD卡中选择要播放的mp3。我使用Intent extra将该mp3的路径从活动发送到服务。
在服务中,媒体播放器可以启动并播放用户选择的mp3。但是有一个问题。如果用户按下暂停按钮,媒体播放器应该暂停,并在稍后以相同的位置恢复歌曲。我如何从活动向服务发送命令,指示应暂停歌曲?
将mediaplayer实例放在活动中要容易得多。这样,我可以在那里放置一个onclick监听器和一个按钮。由服务运行的媒体播放器外部于活动,无法在屏幕上放置按钮供用户按下以暂停。
1个回答

5
两种选择:
1. 如果您的服务是本地服务(这应该是这里的情况),您可以将活动和服务绑定在一起。请参阅Service类文档,了解如何执行此操作的示例。
2. 您还可以使用广播。基本上,您的服务中会有一个广播监听器,它将期望广播操作,例如“com.mypackage.mediaplayer.Stop”、“com.mypackage.mediaplayer.Pause”、“com.mypackage.mediaplayer.Next”等。然后,当按钮被点击时,您的活动只需发送正确的广播消息即可。
您还应该查看Android股票音乐播放器源代码
作为完成了同样类型项目的人,我建议选择第二个选项。

太棒了,我真的很喜欢广播的想法。我现在正在查看一些示例,它看起来并不像我最初想象的那么复杂。 - Kevik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接