BroadcastReceiver是Android四大组件之一,在app开发中被广泛应用到,那什么是广播呢?官方的解释如下:
Android 应用与 Android 系统和其他 Android 应用之间可以相互收发广播消息,这与发布-订阅设计模式相似。这些广播会在所关注的事件发生时发送。举例来说,Android 系统会在发生各种系统事件时发送广播,例如系统启动或设备开始充电时。再比如,应用可以发送自定义广播来通知其他应用它们可能感兴趣的事件(例如,一些新数据已下载)。
广播的分类:
1、按照发送的方式分类
标准广播:通过异步的方式来进行传播的,广播发出去后,所有的广播接收者几乎在同一时间收到信息,没有顺序可言,也无法被截断。
有序广播:既然是有序,那就说明有先后之分,有序广播是同步进行的,同一个时刻只有一个广播接收者能收到信息,当前的接收者处理完逻辑后,广播才会继续往下传播。
2、按照注册方法分类
动态注册:顾名思义,通过代码注册的
静态注册:通过AndroidManifest中进行注册。动态注册要求程序要运行起来才能进行注册,有一定的局限性;如果需要在app还没启动时也能收到广播,那就需要静态注册。
3、按照定义的方式分类
系统广播:Android系统内置了很多系统广播,每个系统广播都有特定的intent-filter,其中主要包括具体的action,系统广播发出后,将被相应的BroadcastReceiver接收,系统广播在系统内部当特定事件发生时,由系统自动发出。
下面举几个系统广播例子,实际上还有很多:
Intent.ACTION_AIRPLANE_MODE_CHANGED; 关闭或打开飞行模式
Intent.ACTION_BATTERY_LOW; 电池电量低
Intent.ACTION_DATE_CHANGED; 设备日期发生改变时发出此广播