Android BroadcastReceiver用于异步进程间通信,类似于发布-订阅的设计模式,不像Activity那样有界面,它是一个Android组件,用于向系统或者应用程序广播消息,这种广播消息指的是事件或者intent(意图)。具体例子像系统的电源容量低通知,下载通知等。
常用的系统intent有:
android.intent.action.BATTERY_CHANGED
android.intent.action.BATTERY_LOW
android.intent.action.POWER_CONNECTED
android.intent.action.POWER_DISCONNECTED
android.intent.action.BOOT_COMPLETED
android.intent.action.CALL
android.intent.action.DATE_CHANGED
android.intent.action.REBOOT
android.intent.action.CONNECTIVITY_CHANGE
android.intent.action.BUG_REPORT
android.intent.action.CALL_BUTTON

Android中大致有两种广播消息:
1.有序广播
2.无序广播

有序广播是同步型广播,按序发送广播消息,序号按照android:priority 属性排列。相同优先级的广播消息将没有先后之分。
无序广播则是异步型广播,随机发送广播消息,使用Context:sendBroadcast发送广播消息。

要实现BroadcastReceiver,首先需要注册这个receiver。
有两种方式:
1.通过Context 注册

<receiver android:name="DataReceiver" >             <intent-filter>                 <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />             intent-filter>receiver>

2.通过Manifest注册

IntentFilter filter = new IntentFilter();intentFilter.addAction(getPackageName()+"android.net.conn.CONNECTIVITY_CHANGE");MyReceiver myReceiver = new MyReceiver();registerReceiver(myReceiver, filter);

注意:Android8以上需要在代码中注册receiver才行。

具体细节请参考完整案例:
开发环境:Android Studio4.0
TestBroadcastReceiver.zip:

MyBroadcastReceiver receiver;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        IntentFilter filter = new IntentFilter("com.funny.CUSTOM_INTENT");        receiver = new MyBroadcastReceiver();        registerReceiver(receiver, filter);    }

更多相关文章

  1. 搭建Android手机系统开发环境
  2. Android从源码分析一:Looper,Handler消息机制
  3. Android中Google Authenticator验证系统工作原理分析
  4. 深入理解Android日志系统
  5. Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影
  6. Android系统架构的详细解析——很全面
  7. android和linux开源社区的分裂
  8. 【幻灯片分享】Android程序的编译,安装和运行 | 小米科技 汪文俊
  9. android Input系统事件分发流程

随机推荐

  1. android EditText内嵌图片
  2. Android百度地图相关内容汇总
  3. Android(安卓)数据交互加密
  4. [init.rc] android init.rc 总结
  5. Android层次结构
  6. Android(安卓)RadioButton与ListView的混
  7. android WebView网页浏览器
  8. Android(安卓)SDK/ADT 历史版本下载地址
  9. android shape的使用
  10. android studio 2.2下载地址