一、广播通过Intent发送出去

// 定义广播的意图过滤器
private String action = "com.xxx.demo.Broadcast.STATUS_CHANGED";
// 发送广播
Intent intent = new Intent();
intent.setAction(action);
ServiceSimulation.this.sendBroadcast(intent);

二、定义接收该广播的BroadcaseReceiver类

1、继承自android.content.BroadcastReceiver;

2、必须实现其onReceive方法,并在其中完成被触发的所有动作;

public class ServiceBroadcastReceiver extends BroadcastReceiver{

    /**
* 本对象在接收到广播时创建,并执行onReceive方法,
* 一旦onReceive方法执行完毕(return),
* 本对象即被销毁(阅后即焚机制)。
* 下次接收到广播时会再次重新创建本对象,再次执行阅后即焚机制。
*/
@Override
public void onReceive(Context context, Intent intent) {
// TODO do someing...
} }

3、必须注册;

(1)在AndroidManifest.xml中注册(静态注册):

    <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" > <receiver android:name=".ServiceBroadcastReceiver">
<intent-filter >
<action android:name="com.xxx.demo.Broadcast.STATUS_CHANGED"/>
</intent-filter>
</receiver>
<!-- Exported receiver does not require permission -->
</application>

注意:您必须确保<action>的android:name属性取值为一个全局唯一的字符串!

(2)在代码中注册(动态注册):

1、声明广播接收器

    // 注册ServiceSimulation的广播接收器
ServiceBroadcastReceiver receiver;
// STATUS_CHANGED是ServiceSimulation发送广播的频道
private final static String STATUS_CHANGED = "com.xxx.demo.Broadcast.STATUS_CHANGED";

2、创建IntentFilter对象;

3、调用Context.registerReceiver()方法注册;

    /**
* 注册ServiceSimulation的广播接收器
*/
private void registerServiceBroadcastReceiver(){ // 实例化广播接收器对象receiver,该对象为类成员变量
receiver = new ServiceBroadcastReceiver(); // 创建意图过滤器对象
IntentFilter filter = new IntentFilter(); // 为意图过滤器对象设置Action,即:广播频道
filter.addAction(STATUS_CHANGED); // 注册该广播接收器
MainActivity.this.registerReceiver(receiver, filter); }

3、调用Context.unregisterReceiver()方法注销。

    /**
* 注销ServiceSimulation的广播接收器
*/
private void unregisterServiceBroadcastReceiver(){ // 注销广播接收器对象receiver,该对象为类成员变量
MainActivity.this.unregisterReceiver(receiver);
}

三、广播的内容

调用Context.sendBroadcast(intent)发送广播时,在参数intent中包裹具体的广播内容,即可实现数据得传输。

Android框架中的广播机制的更多相关文章

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

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

  2. Android 中的广播机制

    Android 中的广播机制 Android 中的广播,按照广播响应范围,可以分为应用内广播和全局广播.按照广播的接收方式,可以分为标准广播和有序广播. 广播的分类 响应范围 应用内广播:此类广播只能 ...

  3. 九、Android学习第八天——广播机制与WIFI网络操作(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 九.Android学习第八天——广播机制与WIFI网络操作 今天熟悉了An ...

  4. Numpy中的广播机制,数组的广播机制(Broadcasting)

    这篇文章把numpy中的广播机制讲的十分透彻: https://jakevdp.github.io/PythonDataScienceHandbook/02.05-computation-on-arr ...

  5. Android中使用广播机制退出多个Activity

    谷歌百度一下,Android中退出多个Activity的方法,大家讨论的很多. 在实习的时候,看到公司的项目退出多个Activity,是采用LinkedList方法,毕业设计的时候,也参照了那种方法. ...

  6. Android学习笔记(广播机制)

    1.Android的广播机制介绍 收听收音机也是一种广播,在收音机中有很多个广播电台,每个广播电台播放的内容都不相同.接受广播时广播(发送方)并不在意我们(接收方)接收到广播时如何处理.好比我们收听交 ...

  7. Android学习总结——本地广播机制

    为了简单解决广播的安全性问题,Android引入了一套本地广播机制,使用这个机制发出的广播只能在程序的内部进行传递,只能接受来自本应用程序发出的广播.否则当我们发送一些携带关键数据的广播可能被截获,一 ...

  8. Android简单实现BroadCastReceiver广播机制

    Android中广播的作用是很明显的,当我们收到一条信息,可能我们的应用须要处理一些数据.可能我们开机.我们的应用也须要处理一些数据,这里都用到了广播机制,这里简单的实现了一个自己定义广播.看实例: ...

  9. numpy中的广播机制

    广播的引出 numpy两个数组的相加.相减以及相乘都是对应元素之间的操作. import numpy as np x = np.array([[2,2,3],[1,2,3]]) y = np.arra ...

随机推荐

  1. flex 布局 初次接触这个好使又不是特别好用的布局方法

    刚开始学前端的童鞋们应该也是一样先学习的table然后再学习了盒子模型,感觉终于学会了简单的网页布局,使用各种display,float,position绞尽脑汁给页面布局成自己想要的页面样式,然而, ...

  2. onreadystatechange()事件

    onreadystatechange(): 存储函数(或函数名),当 readyState 改变时,就会触发 onreadystatechange()  事件. xmlhttp.onreadystat ...

  3. nodejs概要

    1.什么是Node   Node.js 可能类似jquery.js?当不是. 首先Js包含(ECMAScript 即JS- ES  BOM  DOM三类),浏览器三种都可以运行,node中只能运行EC ...

  4. Tomcat服务器重启失败:The server may already be running in another process, or a system process may be using the port.

    在控制台重启Tomcat服务器,报错如下: 原因分析: You've another instance of Tomcat already running. You can confirm this ...

  5. JS脚本修改控件宽度

    var winWidth=0;if (window.innerWidth) { winWidth = window.innerWidth; } else if ((document.body) &am ...

  6. Oracle补习班第七天

    Keep conscience clear, then never fear. 问心无愧,永无畏惧 服务端监听 lsnrctl status  #查看监听服务 netca #配置动态监听 lsnrct ...

  7. jquery “做页面滚动到某屏时改变状态标题” 所用知识点记录

    浏览器滚动条滚动时触发事件 //浏览器滚动条滚动时触发事件 $(window).scroll(function(){}); 浏览器窗口大小改变时触发事件 //浏览器窗口大小改变时触发事件 $(wind ...

  8. ArcGIS Engine渲染

    符号化之Renderer( 渲染)体系 ArcGIS Engine9.3对GIS数据的符号化分为矢量数据渲染和栅格数据渲染两大类.接下来分别介绍FeatureRender和RasterRender. ...

  9. TestNG @Factory与 @DataProvider 结合使用进行参数化测试

    简介 TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试到集成测试,这个是TestNG设计的出发点,不仅仅是单元测试,而且可以用于集成测试.设计目标的不同,对比junit的只适合用于单 ...

  10. msqlserver 千万级别单表数据去掉重复记录使用临时表

    由于上周末小写把数据数据重复写入数据库,没办法,得去重! 最新使用的语句: use data set nocount ondelete DoRecordProperty from( select TI ...