BroadcastReceiver使用方法及个人理解


广播有三种:默认广播、有序广播、粘性广播


发送默认广播:context.sendBroadcast方法


发送有序广播:sendOrderedBroadcast方法,在注册广播中的intentfilter的android:priority属性(-1000 到1000),数值越大,优先级越高


发送粘性广播:sendStickyBroadcast方法,发送粘性广播需要申请权限"android.permission.BROADCAST_STICKY",发送的粘性广播可以移除removeStickyBroadcast方法


广播的发送和接收通过Intent-Filter来对应,和Activity的隐式启动类似


定义广播接收器:

1.继承BroadcastReceiver,并重写onReceive方法来响应事件


2.定义后需要注册, 注册可在清单文件中注册(和Activity类似); 也可在代码中,用registerReceiver方法完成,用unrevisterReceiver方法注销(这两个方法context里有)



对三种广播的个人理解:


普通广播:

所有接收该action的广播接收器都可接收,接收顺序随机,但代码注册的接收器比静态注册的接收器优先,普通广播不能被终止;

有序广播:

1.可以设置权限,必须申请权限的广播接收器才能接收

2.接收顺序按优先级(IntentFilter.priority)接收,同级别的接收器接收先后是随机的

3.每个广播接收器可以setResultExtras()一个Bundle对象,下一个接收器可以通过 getResultExtras()获取该Bunlder对象

4.可以通过abortBroadcast()终止该广播;

粘性广播:

系统会保留该广播中的intent,以后得接收器可以接收该广播,该条广播也可被移除,接收顺序与普通广播类似
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值