使用BroadCast使Activity与Service通信

本文介绍如何在Android应用中使用Broadcast Receiver来实现在Activity与Service之间的通信。通过定义Intent、IntentFilter以及在Activity和服务中分别注册Broadcast Receiver,实现音乐播放器的功能。在Activity中监听歌曲状态变化,而在Service中监听歌曲切换,以此达到双向通信的效果。退出应用后,音乐播放仍能继续。
摘要由CSDN通过智能技术生成

上一篇博客说道除了可以使用bindService()开启Service从而实现在Activity与Service通信之外,还有一个方法,那就是:使用广播BroadCast Receiver

现在做一个简单地音乐播放器,讲解这个原理。

在此之前,我们需要了解如何使用BroadCast:

1.在Activity或者Service中定义一个Intent,并且指定Action属性;

2.再定义一个IntentIntentFilter,用来注册BroadCast Receiver,或者是在AndriodMainifest.xml中注册;

3.调sendBroadCast()方法发送这个注册过的与Intent对应的广播。(广播中重写onReceive()方法)。


接下来就可以做这个播放器了,布局界面非常简单,在此不赘述。

ps:在assets文件中要添加三首歌哦


首先写主Activity,在此中,我们定义了一个继承了BroadCast的内部类,并且在activity中注册了这个BroadCast Receiver,也就是说,该BroadCast Receiver监听这与intentfilter相对应的Intent-----当一首歌结束了或者播放状态改变,都会引起发送广播给Activity;

同理,在Service中我们定义了另一个广播,显然它是监听与其Intentfilter对应的Intent-------当在应用界面切换歌曲时引发发送广播给Service;

这样,Activity与Service之间就形成了通信,并且是相互的。

public class MusicBox extends Activity
	implements OnClickListener
{
	// 获取界面中显示歌曲标题、作者文本框
	TextView title , author;
	//播放/暂停、停止按钮
	ImageButton play , stop;
	ActivityReceiver activityReceiver;
	public static final String CTL_ACTION 
		= "org.crazyit.action.CTL_ACTION";
	public static f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值