您的位置:首页 > 移动开发 > Android开发

Android四大组件:BroadcastReceiver史上最全面解析

2018-06-06 10:53 309 查看




Android四大组件:BroadcastReceiver史上最全面解析





2018年06月05日 15:13:26

阅读数:24







前言

  • BroadcastReceiver
    (广播接收器),属于
    Android
    四大组件之一
  • Android
    开发中,
    BroadcastReceiver
    的应用场景非常多
  • 今天,我将详细讲解关于
    BroadcastReceiver
    的一切相关知识

目录

示意图

1. 定义

即 广播,是一个全局的监听器,属于

Android
四大组件之一

Android
广播分为两个角色:广播发送者、广播接收者

2. 作用

监听 / 接收 应用

App
发出的广播消息,并 做出响应

3. 应用场景

  • Android
    不同组件间的通信(含 :应用内 / 不同应用之间)
  • 多线程通信
  • Android
    系统在特定情况下的通信

如:电话呼入时、网络可用时

4. 实现原理

4.1 采用的模型

  • Android
    中的广播使用了设计模式中的观察者模式:基于消息的发布 / 订阅事件模型

因此,Android将广播的发送者 和 接收者 解耦,使得系统方便集成,更易扩展

4.2 模型讲解

  • 模型中有3个角色:

      消息订阅者(广播接收者)
    1. 消息发布者(广播发布者)
    2. 消息中心(
      AMS
      ,即
      Activity Manager Service
  • 示意图 & 原理如下

示意图

5. 使用流程

  • 使用流程如下:
示意图
  • 下面,我将一步步介绍如何使用
    BroadcastReceiver

即上图中的 开发者手动完成部分

5.1 自定义广播接收者BroadcastReceiver

  • 继承
    BroadcastReceivre
    基类
  • 必须复写抽象方法
    onReceive()
    方法
  1. 广播接收器接收到相应广播后,会自动回调
    onReceive()
    方法
  2. 一般情况下,
    onReceive
    方法会涉及 与 其他组件之间的交互,如发送
    Notification
    、启动
    Service
  3. 默认情况下,广播接收器运行在
    UI
    线程,因此,
    onReceive()
    方法不能执行耗时操作,否则将导致
    ANR
  • 代码范例
    mBroadcastReceiver.java
// 继承BroadcastReceivre基类 
public class mBroadcastReceiver extends BroadcastReceiver {
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: