3.广播

广播

1.广播机制简介

1.1标准广播

是一种完全异步执行的广播,所有的广播接收器在同一时刻接受到,效率高,无法被截断

发出一条广播–广播接收器1,2,3

1.2有序广播

是一种同步执行的广播,优先级高的广播接收器就可以先收到广播,并且可以截断正在传递的广播。

发出一条广播–广播接收器1–广播接收器2–广播接收器3

2.对广播进行注册

方式有两张,在代码中注册和在AndroidManifest.xml中注册,
前者称为动态注册,后者称为静态注册。

2.1动态注册

创建广播接受器:新建一个类继承BroadcastReceiver
并重写onReceive()方法。
在onCreate()中创建一个IntentFilter实例,添加我们要监听的广播的action值,
然后创建广播接收器类的实例,
然后调用registerReceiver(),传入IntentFilter对象和接收器对象,进行注册。
最好在onDestroy()中使用unregisterReceive()方法取消注册

2.2静态注册

在AndroidManifest.xml文件中添加<uses-permisson/>监听的系统权限。
<application>中添加<receive>将接收器注册,并用<Intent-filter>加入想要接收的广播类型。

3.发送自定义广播

3.1标准广播

新建Intent对象,传入要接收的广播,调用sendBroadcast()方法,传入Intent对象。

3.2有序广播

在AndroidManifest.xml文件<receive>中添加android:priority属性,设置优先级
调用sendOrderedBroadcast()方法,传入Intent对象和一个权限字符串(可为null)。
在onReceive()中调用abortBroadcast()方法可将广播截断。

4.本地广播

只能在应用程序内用进行传递的广播

发送:
通过LocalBroadcastManager.getInstance获取LocalBroadcastMananer实例    
调用实例的sendBroadcast(Intent intent)方法发送本地广播

接收:
将要接受的广播类型传入IntentFilter对象,调用实例的registerReceiver()方法进行动态注册
在onDestroy()中调用实例的unregisterReceiver()方法取消注册。

优点

最后我们再来盘点一下使用本地广播的几点优势吧。
1. 可以明确地知道正在发送的广播不会离开我们的程序,因此不需要担心机密数据泄漏的问题。
2. 其他的程序无法将广播发送到我们程序的内部,因此不需要担心会有安全漏洞的隐患。
3. 发送本地广播比起发送系统全局广播将会更加高效。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值