Android之 Broadcast广播

本文详细介绍了Android中的Broadcast广播机制,包括SendBroadcast、SendOrderedBroadcast和LocalBroadcast的使用和区别。同时,讨论了广播的静态和动态注册,重点阐述了BroadcastReceiver的工作原理,涉及Binder机制和AMS在广播注册及接收中的作用。此外,还提到了自定义广播的实现,特别是本地广播的高效性和安全性特点。
摘要由CSDN通过智能技术生成

Broadcast

是应用程序之间传输信息,通过Intent传输数据,可以进行多进程通信,不同组件通信,不同App之间通信。那么广播主要分为:SendBroadcast(普通广播)、SendOrderedBroadcast(有序广播)、LocalBroadcast(只在自身App内传播):

  • SendBroadcast:是一种异步执行的广播,接收者可以完全同一时刻受到消息,虽然效率高,但不可以截断。
  • SendOrderedBroadcast:是一种同步执行的广播,接只有一个可以收到消息,优先级越高可以最先受到消息,收到后,下一个才可以接收到消息,可以截断。
  • LocalBroadcast:只能在应用程序的内部进行传递的广播,广播接收器也只能接收内部的广播,不能接受其他应用程序的广播

首先要进行注册广播

注册有两种,为静态注册,动态注册:

 

  • 1.静态注册在清单文件中写,但不够灵活,注册过后,无论Activity什么状态,一直会存活下去,收到消息。

     

    • 在AndroidMainFest中的application标签下加上receiver的子标签
    • 加入权限
    • 与通过name属性指定注册一个广播类,也就是我们刚才定义的那个广播类,还有enabled与exported属性,enabled代表是否启用这个广播接收器,exported属性表示是否允许这个广播接收器接受本程序以外的广播(这两步可以通过Android Studio自动完成)
    • 之后在receiver标签下加上intent-filter标签,设置其的action
    
    <receiver android:name=".myreceiver"
                android:exported="true"
                android:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值