🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
1.背景     在MusicActivity ,MusicService 和MusicNotification 中,BroadcastReceiver 起着至关重要的作用。BroadcastReceiver 存在于 MusicActivity 和 MusicService 中 ,是两者沟通的桥梁,是整个App的核心功能。MusicSerice 有着控制音乐,后台播放的作用,MusicActivity 有着前台显示当前歌曲的信息和当前的歌词信息等,同时还显示当前的进度,剩余时间等。而MusicNotification ,在应用在后台运行的时候,可以显示当前歌曲信息。三者之间的通信,以MusicService为核心,衔接着三者之间的通信。 2.BoradCastReceiver功能实现回顾    (1)图解    ![](https://box.kancloud.cn/2016-04-19_5715764c432dd.jpg)        (2)实现步骤:                 1)首先在实现BroadCastReceiver接口,实现OnReceiver() 方法                 2)其次创建 BoradCastReceiver 对象,并添加IntentFilier的Action xxx                 3)在者注册 BroadCastReceiver, registerReceiver ()                  4)不使用的时候,解除注册 unRegisterReceiver()        (3)使用步骤                 1)创建Intent 对象                 2)添加BoradCastReceiver 中 IntentFiliter 的 Actionxxx                 3)给intent对象 put参数                 4)sendBroadCast(intent) 3.MusicService 和 MusicNotification 回顾    (1)图解  ![](https://box.kancloud.cn/2016-04-19_5715764c5c679.jpg)     (2)说明              MusicNotification 的初始化 ,更新, 修改 均在MusicService 中实现,包括MusicActivity 更改歌曲信息,更新到通知栏,均在MusicService中调用实现。而MusicNotification 对 音乐的控制 通过 BroadcastReceiver实现,具体过程见 :   # [Android实战 - 音心播放器 (通知实现音乐的播放/暂停/下一曲控制)](http://blog.csdn.net/lablenet/article/details/50323249) # 4.MusicActivity , MusicNotification ,MusicService     (1)图解 ![](https://box.kancloud.cn/2016-04-19_5715764dba587.jpg)     (2)说明                [点击查看原](http://img.blog.csdn.net/20151216151717257)图                1) 基本过程:当点击播放的时候,发送广播到MusicService ,MusicSrvice接受广播取得参数,对其进行控 制, 1)播放当前音乐 ;2)更新通知栏;3)发送广播给MusicActivity,更新MusicActivity界面状态;                                 2)Notification 控制播放 (实际上和上面一样)                 基本过程:当点击播放的时候,发送广播到MusicService ,MusicSrvice接受广播取得参数,对其进行控 制, 1)播放当前音乐 ;2)更新通知栏;3)发送广播给MusicActivity,更新MusicActivity界面状态; 5.总结     在学习使用过程中,其实BoradCastReceiver 是可以静态实现,即在 AndroidManfest.xml 中进行配置的,这个使用了动态注册的方式实现。在这里理解清楚 整个控制流程尤为重要,在自己做的过程中,没有去想,而直接去做了,实在不应该。以后要多用图来理解每个过程。