在android中从Activity到Service发送命令

问题描述 投票:2回答:2

我有一个活动类和一个服务,里面有媒体播放器。 用户从SD卡中选择他们想要播放的MP3。 我使用Intent extra将mp3的路径从活动中发送到服务中。

在服务中,媒体播放器可以启动并播放用户选择的mp3,但是有一个问题。 如果用户按了暂停键,媒体播放器应该暂停,然后在同样的位置继续播放歌曲。我如何从活动中向服务发送暂停歌曲的命令?

把mediaplayer实例放在Activity里面会更容易,这样我就可以在里面放一个onclick监听器和一个按钮。 如果是由服务运行的媒体播放器,它是活动的外部,不能只在屏幕上放一个按钮让他们按下暂停。

android service android-activity communication
2个回答
5
投票

两个选项。

  1. 如果你的服务是本地服务(这里应该是这样),你可以将活动和服务绑定。请看 服务类文件 关于如何做到这一点的例子

  2. 你也可以使用广播。基本上,你将在你的服务中拥有一个广播监听器,它将期待诸如 "com.mypackage.mediaplayer.Stop"、"com.mypackage.mediaplayer.Pause"、"com.mypackage.mediaplayer.Next "等广播动作。当按钮被点击时,你的活动就会发送正确的广播信息。

你也应该看看 安卓股票音乐播放器源码.

做过同样的项目,我建议选择第2种方案。

© www.soinside.com 2019 - 2024. All rights reserved.