Fragment中使用广播创建音乐盒子
一、内容简介
今天需要实现的是在Fragment中使用广播创建音乐盒子,在我们点击播放一首歌曲的时候,要从服务器拿数据,然后播放,这其实不止一个流程,可以理解为多线程的,普通的顺序过程实现效果不好。所以我们专门做一个activity来控制音乐的播放,音乐盒界面只实现用户点击动作。以下是通过广播创建音乐盒子的流程图。
MainActivity 发送广播,把在 main.xml 上4个按钮的对应的 control 发送出去, MusicService 接收到 MainActivity 发送的广播,执行相应动作。
MusicService 发送广播,将当前放第几首歌(current,默认0)发送出去,MainActivity 接收到MusicService发送的广播,从而在main.xml 的2个TextView处显示当前歌曲的 title 和 author。
MainActivity 和 MusicService 都即是发送方,也是接收方。
status是作为广播中在MainActivity和MusicService之间传递音乐播放状态的Intent的一个值。
Service 使应用程序能在后台运行。虚拟机在返回MusicBox2程序后仍可播放音乐。
根据自身需要我是将音乐盒子嵌套在Fragment中,所以需要在Fragment中建立activity与service之间的广播通信
二、实现步骤
1.编写音乐盒子的布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/cover"
android:layout_width=