一、目标

  1、了解什么是BroadcastReceiver

  2、掌握BroadcastReceiver的使用

  3、了解BroadcastReceiver的生命周期

二、什么是BroadcastReceiver

  1、Broadcast(广播)是一种广泛运用在应用程序之间传播消息的机制

    a、系统消息

      a):Android系统发出的,电池不足、来电信息等

    b、自定义消息

      a):第三方应用发出的广播消息

  2、什么是BroadcastReceiver

    a、广播消息本质上就是一个Intent对象

    b、Intent是一对一的通信,广播消息是一对多的通信

    c、BroadcastReceiver用于接受并处理广播消息

    d、BroadcastReceiver没有用户界面

      I、借助其他方式和用户交互,例如:启动Activity、使用Notification等

三、广播消息的处理流程

  1、广播消息的处理分为三个环节

    a、消息发送

    b、BroadcastReceiver注册

    c、消息处理

四、处理系统广播消息

  1、系统广播都被定义为android.content.Intent中的Action常量

  2、利用BroadcastReceiver捕获系统广播

    I、ACTION_BOOT_COMPLETED可以轻松实现开机后台程序自动运行

  3、系统广播 

      a、android.provider.Telephony.SMS_RECEIVED 短信息
      b、android.intent.action.NEW_OUTGOING_CALL 外拨电话
      c、android.intent.action.MEDIA_UNMOUNTED SD卡未挂载
      d、android.intent.action.MEDIA_UNMOUNTED SD卡未挂载
      e、android.intent.action.MEDIA_MOUNTED SD卡挂载
      f、android.intent.action.MEDIA_REMOVED SD卡拔出

  4、在AndroidManifest.xml文件中增加应用权限声明

<uses-permission
android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

  5、继承BroadcastReceiver并实现onReceiver方法

public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent){...}
}

五、深入消息处理

    1、无序广播:sentBroadcast(),效率高,但是消息处理之间没有关联、

    2、有序广播sendOrderBroadcast(),可以传递处理数据

  3、持续广播:sendStickyBroadcast()发送的广播一直存在

六、BroadcastReceiver的生命周期

  1、BroadcastReceiver的onReceiver()方法执行完后,其实例就会被销毁。

  2、如果onReceiver()方法在10秒内没有执行完,Android会认为程序无响应。

    a、–所以BroadcastReceiver不能做比较耗时的操作,否则会弹出“Application No Resource”的对话框

转载于:https://www.cnblogs.com/zhangmawang/p/8086852.html

Android之BroadcastReceiver的使用相关推荐

  1. android 增加一条广播,Android中BroadcastReceiver广播使用及注意点

    Android中的广播用途很广,是四大组件之一.在android中可以看到它的各种应用,从系统发出的广播,用户自定义的广播等. 这里详细记录下广播的分类以及使用方法. 广播,是由两方面组成一个流程:广 ...

  2. Android中BroadcastReceiver组件详解

    Android系统的4个组件终于还剩一种组件了BroadcastReceiver,这个组件是全局监听器,可以监听系统全局的广播消息,可以方便的实现系统中不同组件之间的通信 BroadcastRecei ...

  3. Android中BroadCastReceiver使用(整理)

    BroadcastReceiver 在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制.而BroadcastReceiver是对发送出来的 Broadcast进行过滤接 ...

  4. Android之BroadcastReceiver 监听系统广播

    绑定广播有两种方式 一.配置文件绑定,在程序未启动也能监听 二.代码方式绑定,在程序启动后才能监听 1.绑定和取消绑定广播 public class MainActivity extends Acti ...

  5. android之broadcastreceiver 耳机按键,Android 实时监听耳机按钮事件

    写作背景:最近在做视频播放器,客户提出两项新需求: 插耳机看视频,拔出耳机,视频需要暂停.(Android 实时监听耳机拔出事件) 视频播放时,按耳机按钮,视频暂停播放:再按耳机按钮,视频暂停. 如何 ...

  6. Android之BroadcastReceiver

    Android广播机制包含三个基本要素: 广播发送者(调用sendBroadcast方法) - 用于发送广播: 广播接收器(BroadcastReceiver) - 用于接收广播: 意图内容(Inte ...

  7. NullPointerException:method 'android.content.BroadcastReceiver.onReceive' on a null object reference

    最近在使用广播的时候遇到了这个问题,项目里面使用了极光推送,然后项目里有几个地方都需要写广播接收者去接收,所以我只在一个地方写了,然后其他的地方就是copy过去的,然后就报了这个错误,总的来说,这个错 ...

  8. android receiver 通知,android – 来自BroadcastReceiver的呼叫通知

    我有代码: public void AlarmStart() { Calendar cal = Calendar.getInstance(); cal.add(Calendar.MINUTE, 5); ...

  9. android广播intent原理,Android中BroadcastReceiver详解

    BroadcastReceiver是什么? Android app可以发送广播也可以接收系统或者其它app发送的广播,是发送/订阅的设计模式.这些广播被发送当重要的事件发生的时候.例如,安卓系统发送广 ...

  10. Android的BroadcastReceiver 广播 短信拦截

    如何去理解BroadcastReceiver(广播)?其实可以这样想,首先我们要有一个发送广播的"媒体",在这个例子中,我们暂且用activity组件作为这个媒体,当然以后会用到s ...

最新文章

  1. JasperReport报表设计4
  2. mysql 集群切换_完美起航-MySQLMHA高可用集群部署及故障切换(图文详解)
  3. java编程题有难度的_算法与编程面试题 不喜勿喷 难度指数:*****...
  4. Spark练习 - 提交作业到集群 - submit job via cluster
  5. 【栈】【字符】匹配(jzoj 1612)
  6. java中常见的几种内部类,你会几个?(未完)
  7. 原生ajax请求的五个步骤
  8. nn.Parameter的作用
  9. mysql ---- 多表查询
  10. 用数组循环实现矩阵乘法php,array用法 numpy_从创建数组到矩阵运算,一文带你看懂Numpy...
  11. java正则匹配性能,Java正则表达式的性能问题
  12. hibernate教程笔记1
  13. 【XLL 框架库函数】 TempMissing/TempMissing12
  14. Prescan:关于Prescan与Matlab联合仿真问题小总(不定时补充)
  15. wifi各协议最高速率
  16. 应用密码学:位移密码极简(凯撒密码)
  17. Android读取RAM,ROM,SD卡容量
  18. 图片怎么无损放大?不影响清晰度这么做
  19. 2750 心系南方灾区
  20. html怎么解压缩文件,压缩包7z如何解压

热门文章

  1. Scala 类和对象详解
  2. Linux安全技术和防火墙介绍
  3. HBase 默认配置项详细解读
  4. 使用docker快速启动jetlinks
  5. k8s安装之服务器基础环境配置
  6. Linux tail命令
  7. 什么是死锁(deadlock)?
  8. 解决逆向工程mapper映射文件不发布问题
  9. SpringDataJpa使用示例
  10. Qt Creator 最实用的快捷操作