一、广播通过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. [PHP] - Laravel - Route路由

    前言 这里使用的是Laravel 5 PHP Laravel的路由比较强悍,但也正因如此,不统一而容易凌乱.比如在路由中可以直接写方法操作(破坏封装啊) 以下是个人学习的例子,不供参考 路由中的直接方 ...

  2. IOS-指定返回Modal的控制器presentViewController

    [self.presentingViewController.presentingViewController dismissViewControllerAnimated:NO completion: ...

  3. vc++>>Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enable

    用VC来连接远程MYSQL时,出现如标题一样的错误,网上搜索了此错误产生的原因,最后自己找到了解决办法. 此错误产生的原因: 异常原因在于服务器端的密码管理协议陈旧,使用的是旧有的用户密码格式存储:但 ...

  4. Java课程

    链接: http://pan.baidu.com/s/1kU2n3wz 密码: r88d (封装,继承,多态) 1.JDK的安装和配置 2.HelloWorld 3.基本概念 4.数据类型 5.程序控 ...

  5. form表单的enter自动提交

    当form中只有一个文本框时并且获得焦点 按enter时,就会自动提交表单.阻止自动提交 可以添加一个隐藏的input框 <input type="text" style=& ...

  6. UNIX网络编程-Select模型学习

    1.相关接口介绍 1.1 select ---------------------------------------------------------------------- #include ...

  7. AX 2012 在Grid 中添加image标识状态

    refer to :http://kiwiaxguy.blogspot.hk/2013/10/displaying-image-on-form-grid-in.html

  8. sqlserver ,left join 不仅可以join表,还可以是一个结果集

    SELECT MA.NAME AS MakeName , M.ID AS ModelId , M.Name AS ModelName , M.Warranty AS ModelWarranty , S ...

  9. 用直接路径(direct-path)insert提升性能的两种方法

    1.传统串行insert方式 常见的insert方式有两种: (1) insert into table_name values(....) (2) insert into target_table ...

  10. Google Protocol Buffer 的使用和原理[转]

    本文转自: http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/ Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构 ...