## 1.背景
前面已经总结了MainActivity,MusicService ,MusicNotification的实现,在这里将总结MainActivity 与 MusciService ,MusicService 与 MusicNotification , 以及三者的关系;
## 2.MainActivity 与 MusicService
(1)过程图
![](https://box.kancloud.cn/2016-04-19_5715764c72f25.jpg)
(2)说明
1)当应用启动的时候,就初始化MusicService , 包括 初始化的音乐数据 ,通知,广播,MediaPlay ;
2)在主页中音乐信息展示的数据是在Fragment中,所以需要回调函数回调出点击的位置,从而播放当前点击的音乐;
3)在MainActivity播放当前点击的音乐,通过广播发送Intent,进行播放;
## 3.Notification与Serivice
(1)关系图
![](https://box.kancloud.cn/2016-04-19_5715764c5c679.jpg)
(2)说明
1)Notification在Service中初始化;
2)Notification 在音乐状态发生改变的时候,发生改变(Service调用更新);
3)Notification 在Service 关闭的时候,移除通知;
4)Service 在音乐状态发生改变的时候,更新Notification;
5)Service 正在播放的Music信息,会更新到通知栏;
6)Service与Notification 通信通过 BoradCastReceiver实现;
(3)BoradCastReceiver过程图
广播的使用,不仅仅是在Notification与MusicService ,还用在 MainActvity与MusicService ,当然后面还有使用的地方,尽情期待;
![](https://box.kancloud.cn/2016-04-19_5715764c432dd.jpg)
## 4.总结
![](https://box.kancloud.cn/2016-04-19_5715764c97c57.jpg)
MainActivity,MusicService , Notification 的关系,通信以 BroadCastReceiver为媒介,来传递信息;MusicService作为播放器的心脏,BoradCastReceiver 在MusicService中以内部类的形式实现,并没有单独的写成一个类,这样的话,方便了音乐的控制,不然要写很多回调函数。
- 前言
- Android实战 - 音心音乐播放器 (开启篇)
- Android实战 - 音心音乐播发器 (主界面实现)
- Android实战 - 音心播放器 (Music Service 实现)
- Android实战 - 音心播放器 (通知实现音乐的播放/暂停/下一曲控制)
- Android实战 - 音心播发器 (MusicService ,Notification, MainActivity 总结)
- Android实战 - 音心播放器 (MusicActivity-音乐播放页面界面实现)
- Android实战 - 音心播放器 (MusciActivity-专辑图片获得,基本控制实现)
- Android实战 - 音心播放器(MusicActivity - 歌词实现)
- Android实战 - 音心播放器 (MusicActivity - 倒计时 ,进度条实现)
- Android实战 - 音心播放器 (MusicActivity ,MusicNotification,MusicService总结)
- Android实战 - 音心播放器 (MusicListActivity - 分类信息界面实现)
- Android实战 - 音心播放器 (MusicListActivity - 音乐播放和MainActivity的一个问题)
- Android实战 - 音心播放器 (启动页与社交分享(ShareSDK))
- Android实战 - 音心播放器 (优化Service退出,按两下退出应用实现)
- Android实战 - 音心播放器 (项目总结,应用打包发布)