【Android】广播的原理及实现步骤

发送方和接收方通过 AMS(Activity Manager Service) 来进行交互

  • 广播接收者通过Binder机制在AMS注册
  • 广播发送者通过Binder机制向AMS发送广播
  • AMS根据广播发送者要求,在已注册列表中,寻找符合条件的接受者(依据:IntentFilter / Permission)
  • AMS将广播发送到合适的接受者消息循环队列中
  • 接受者通过消息循环拿到该广播,并回调OnReceive()
  • 发送方
    • 可以自定义发送(通过定义intent及执行sendBroadcast方法)
    • 也可以由系统自动发送,即当系统的某些行为发生变化时,如时间更改,此时不需要做发送方的任何操作
  • 接收方
    • 自定义一个BroadcastReceiver,并重写onReceive方法
    • onReceive中执行接收到广播后做的操作
    • 这个BroadcastReceiver必须要进行注册,注册方法有两种:
      • 静态注册:在AndroidManifest中定义receiver (Android 8后失效)
      • 动态注册:需要分别在onResume和onPause中进行注册和销毁

1.3 广播的补充知识

  • 设置仅接受本App内的广播:
    • 对于静态注册的广播:设置exported属性
    • 对于动态注册的广播:实例化LocalBroadcastManger, 并调用它注册/解绑
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值