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: