Broadcast Receiver详解

2017-11-09  本文已影响14人  Skypew

一、广播

1.广播的定义

应用程序之间(不同程序) 传输信息的机制 (有点类似观察者模式),android中我们要发送的广播内容是一个Intent,可以携带我们要传输的数据

例子: service 中发送广播 ,activity中接收,进行ui界面更新

2.广播的场景

3.广播的种类

二、实现广播 receiver

  1. 静态注册 注册完成后就一直运行
    接收广播 与activity无关 甚至app 进程杀死了 仍然能收到广播

在AndroidManifest.xml 中注册


image.png
image.png
  1. 动态注册:跟随activity 的生命周期

intentFilter = new IntentFilter();
  intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
        networkChangeReceiver = new NetworkChangeReceiver();
        registerReceiver(networkChangeReceiver, intentFilter);


//需要 取消注册 避免内存泄漏 
 @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(networkChangeReceiver);
    }

三、广播实现机制

AMS android 核心服务 , 负责 四大组件的启动 切换 调度,应用程序的管理和调度工作
Binder机制 整体架构 是客户端 服务端cs 结构,客户端进程可以获取到服务端进程的代理 来读取数据

image.png

四、LocalBroadcastManager(本地广播详解)

image.png
源码 image.png
上一篇 下一篇

猜你喜欢

热点阅读