Andorid学习笔记五:广播

简介

  • 每个应用都可以对自己感兴趣的广播进行注册,Andorid提供了一套完整的API用于发送和接收广播,发送广播借助Intent,接收广播借助BroadcastReceiver

广播类型

  • 标准广播:完全异步执行,所有的Receiver会同一时间收到该广播,无法被截断
  • 有序广播:同步执行的广播,同一时刻只有一个Receiver能收到广播消息,当这个Receiver中的逻辑执行完毕后,才会继续传播。

接收系统广播

动态注册

  • 新建一个类继承自BroadcastReceiver,并重写onReceive()方法,当收到广播时,onReceiver()方法就会得到执行
  • 创建一个IntentFilter实例,并添加想要收到广播的action
  • 调用registerReceiver()方法进行注册,将BroadcastReceiver实例和IntentFilter实例传入
  • 最后,动态注册的BroadcastReceiver一定要取消注册,通过unregisterReceiver()方法

静态注册

  • 8.0系统后,所有的隐式广播都不允许静态注册,隐式广播是指那些没有具体指定发送到哪个应用程序的广播,大多数系统广播都属于隐式广播。
  • 静态的BroadcastReceiver一定要在AndoridManifest.xml中注册,并添加intent-filter标签声明对应的action

发送自定义广播

发送标准广播

  • 构建Intent对象,并把要发送的广播的值传入
  • 调用Intent的setPackge()方法,传入当前包名【默认发送的都是隐式广播,所以这里指定包名,使其成为显示广播】
  • 调用sendBroadcast()方法将广播发送出去

发送有序广播

  • 使用sendOrderedBroadcast()方法发送intent
  • 通过android:priority属性给Receiver设置优先级
  • 如果在优先级高的Receiver中调用abortBroadcast()方法,就会截断该广播
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值