说Android广播(一)

本文涉及到的三个主体:

  • 广播意图
  • 广播发送方
  • 广播接收者
  • 广播接收者的登记者
1. 广播意图(broadcast intent 可简称为广播)

首先有必要简单说明下intent是什么intent其实可以理解为Android系统为了方便信息可以在应用内组件之间或者在不同应用之间,进行传送,而创造出来的一个信息载体,数据信息可以通过装载到intent上来传送到其他地方。

broadcast intent 就是一个被发送方创建并发出,可以被多个登记了广播接收者的登记者所接收。所以起到了传递信息和广播的作用。

比如有:系统类型广播自定义类型广播
**系统类型广播:**设备启动完成(BOOT_COMPLETED)、WiFi状态变更、软件安装卸载、电话接打、短信收发,等等。
**自定义类型广播:**由应用自行定义的广播,功能一样,只是发送方是应用自身,而非系统。

  • 创建广播的代码:
Intent broadIntent = new Intent();
broadIntent.setAction("action_aaa");
context.sendBroadcast(broadIntent);
2. 广播发送方

就是创建broadcast intent的组件,一般是应用组件(Activity/Fragment/Service)或Android系统。

  • 调用代码:
context.sendBroadcast();
context.sendOrderBroadcast()
3. 广播接收者(Broadcast Receiver)

broadcast receiver是Android系统的四大组件之一。接收来自系统或者应用发出的broadcast intent,并进行处理。分为动态broadcast receiver和静态的standalone receiver,后者需要在清单文件中登记。

  • 代码定义:
class XXXReceiver extends BroadcastReceiver {
		@Override
       public void onReceive(final Context context, Intent intent) {
           if(intent.getAction().equals(DvbContents.FilterAction.ACTION_SEARCH_FINISHED_NOTIFY){
               // To handle bussiness
               
           }
       }
    }
}
4. broadcast receiver的登记者

毫无疑问,登记者指的就是需要利用broadcast receiver来做一些事情的那个组件。如,Activity、Fragment、Service等,一般来说这类组件都是采取动态登记的方式。而静态注册的则针对的是standalone receiver,其登记者则是Android系统,此类receiver是在AndroidManifest.xml中进行登记声明的。

  • 声明代码:

// standalone receiver在AndroidManifest.xml中静态注册
<receiver android:name=".aaa.bbb.CCCReceiver"
	android:directBootAware="true">
	<intent-filter>
	    <action android:name="com.gangan.action.TO_BE_RICH"/>
	</intent-filter>
</receiver>

// broadcast receiver在应用组件如Activity中进行登记,最后结束时需要撤销登记。
// 在Activity onCreate()中
	XXXBroadcastReceiver receiver = new XXXBroadcastReceiver();
	IntentFilter intentFilter = new IntentFilter();
	intentFilter.addAction("action_aaa");
	intentFilter.addAction("action_bbb");
	context.registerReceiver(receiver, intentFilter);
	
// 在Activity onDestroy()中撤销登记
	context.unregister(receiver);
	
《 广播的整个处理过程 》

广播的整个处理过程
结束,晚安!

下一篇文章见《说Android广播(二)》1


  1. 简述普通广播和有序广播 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值