如何编写广播接收器

第一步:需要继承BroadcastReceiver类,覆写其中的onReceive()方法.

class MyBroadcastReceiver extends BroadcastReceiver {
//接收到广播会被自动调用
@Override
public void onReceive (Context context, Intent intent) {
//从Intent中获取action
…your code here…
}
}

第二步:定义好广播接收器还不行,必须向系统注册以便让其知道该接收器可以处理哪些广播事件。
常见方式是采用静态注册,修改MENIFEST.xml文件, 在<application></application>中加入receiver标签.
application>
<activity name=""/>
<receiver android:name=".MyBroadcastReceiver">
<!-- intent过滤器,指定可以匹配哪些intent, 一般需要定义action 可以是自定义的也可是系统的 -->
<intent-filter>
<action android:name="com.app.bc.test"/>
</intent-filter>
</receiver>
</application>

第三步:此时我们可以发送一个广播事件出去,代码如下:

Intent intent = new Intent(“com.app.bc.test”);
sendBroadcast(intent);//发送广播事件

动态注册广播接收器
在某个Activity中,我们可以用代码来实现动态注册:
//生成一个BroadcastReceiver对象
SMSReceiver smsReceiver = new SMSReceiver();
//生成一个IntentFilter对象
IntentFilter filter = new IntentFilter();
filter.addAction(“android.provider.Telephony.SMS_RECEIVED”);
//将BroadcastReceiver对象注册到系统当中
//此处表示该接收器会处理短信事件
TestBC1Activity.this.registerReceiver(smsReceiver, filter);
静态注册和动态注册的区别
1)静态注册:在AndroidManifest.xml注册,android不能自动销毁广播接收器,也就是说当应用程序关闭后,还是会接收广播。
2)动态注册:在代码中通过registerReceiver()手工注册.当程序关闭时,该接收器也会随之销毁。当然,也可手工调用unregisterReceiver()进行销毁。
操作小结
静态注册的步骤:
定义广播接收器,继承BroadcastReceiver类,覆写onReceive函数.
在xml文件中注册监听器,定义Intent-Filter中感兴趣的action操作.
使用sendBroadCast向系统发送对其感兴趣的广播接收器中.
动态注册的步骤:
SMSReceiver  smsReceiver = new SMSReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(“android.provider.Telephony.SMS_RECEIVED”);
TestBC1Activity.this.registerReceiver(smsReceiver, filter);

BroadCast广播机制应用与实例的更多相关文章

  1. 【Android】BroadCast广播机制应用与实例

    如何编写广播接收器 第一步:需要继承BroadcastReceiver类,覆写其中的onReceive()方法. class MyBroadcastReceiver extends Broadcast ...

  2. 安卓开发笔记——Broadcast广播机制(实现自定义小闹钟)

    什么是广播机制? 简单点来说,是一种广泛运用在程序之间的传输信息的一种方式.比如,手机电量不足10%,此时系统会发出一个通知,这就是运用到了广播机制. 广播机制的三要素: Android广播机制包含三 ...

  3. 【转】 android之如何在两个activity之间传递handler_利用broadcast广播机制

    原文:http://blog.csdn.net/jason0539/article/details/18075293 这算是如何在两个activity之间传递handler的解决方案二了,解决方案一见 ...

  4. Android系统中的广播(Broadcast)机制简要介绍和学习计划

    在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制:这些组件甚至是可以位于不同的进程中,这样它就像Binder机制一样,起到进程间通信的作用:本文通过一个 ...

  5. Android广播机制:Broadcast

    转载:Android总结篇系列:Android广播机制 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广 ...

  6. Android随笔之——Android广播机制Broadcast详解

    在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理.这个广播跟我们传统意义中的电台广播有些相似之处.之所以叫做广播,就 ...

  7. 品茗论道说广播(Broadcast内部机制讲解)(下)

    下面我们来看,递送广播动作中最重要的processNextBroadcast(). 3.2 最重要的processNextBroadcast() 从processNextBroadcast()的代码, ...

  8. 品茗论道说广播(Broadcast内部机制讲解)(上)

    1 概述 我们在编写Android程序时,常常会用到广播(Broadcast)机制.从易用性的角度来说,使用广播是非常简单的.不过,这个不是本文关心的重点,我们希望探索得再深入一点儿.我想,许多人也不 ...

  9. Android广播机制的深入学习

    部分内容转载自http://www.cnblogs.com/lwbqqyumidi/p/4168017.html 1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者 ...

随机推荐

  1. 【Python】数组排序

    1.numpy库:argsort() argsort函数返回的是数组值从小到大的索引值(升序排列) 一维: In [1]: import numpy as np In [2]: x = np.arra ...

  2. python爬虫知识点总结(九)Requests+正则表达式爬取猫眼电影

    一.爬取流程 二.代码演示 #-*- coding: UTF-8 -*- #_author:AlexCthon #mail:alexcthon@163.com #date:2018/8/3 impor ...

  3. AtCoder Regular Contest 070F:Honest Or Unkind

    题目传送门:https://arc070.contest.atcoder.jp/tasks/arc070_d 题目翻译 有\(n\)个人,其中有\(a\)个人是诚实的,另外\(b\)个是不诚实的.你可 ...

  4. 洛谷P1525关押罪犯——二分做法

    题目:https://www.luogu.org/problemnew/show/P1525 二分答案,二分图染色判断是否可行. 代码如下: #include<iostream> #inc ...

  5. poj2492A Bug's Life——带权并查集

    题目:http://poj.org/problem?id=2492 所有元素加入同一个并查集中,通过其偏移量%2将其分类为同性与异性,据此判断事件. 代码如下: #include<iostrea ...

  6. wamp + wordpress 安装

    WAMP是一个windows上的php开发集成环境,一键安装php,apache和mysql,非常方便. 双击wampserver2.2exxxxxxxxxx.exe文件进行安装,安装过程中直接下一步 ...

  7. java面向对象的三大特性

    1.面向对象的三大特性 继承.封装.多态 什么是继承? ①继承是面向对象程序设计能够提高软件开发效率的重要原因之一. ②继承是具有传递性的,就像现实中孙子不仅长得像爸爸而且还像他爷爷. ③继承来的属性 ...

  8. nodebrew的安装与使用

    创建: 2019/05/10  安装 brew install nodebrew 初始化 nodebrew setup ~/.bash_profile 里添加 export PATH=/usr/loc ...

  9. IT兄弟连 JavaWeb教程 监听器2

    4  监听HttpSession域对象的创建和销毁 HttpSessionListener接口用于监听HttpSession对象的创建和销毁. 创建一个Session时,激发sessionCreate ...

  10. js函数-构成

    前言 函数是一种封装,在任何语言中都是一个核心概念.在js中,函数是做为对象的子类型存在的.可以拥有自己的属性和方法,可以做为值进行传递,这两个特性让js拥有使用函数式编程的能力. 函数的声明 字面量 ...