一、广播通过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. lumen Response

    1.基本响应 所有路由和控制器都会返回某种被发送到用户浏览器的响应,Lumen提供了多种不同的方式来返回响应,最基本的响应就是从路由或控制器返回一个简单的字符串: $app->get('/', ...

  2. View 的 focus 和 selected 状态, TabContainer实现

    View的 isFocusableInTouchMode() 默认是 false, 需调用 setFocusableInTouchMode(true) 才为true要让 button 等 view 调 ...

  3. if、if elif判断

    1.if.py #coding=utf-8 user = 'alex' passwd = 'alex3714' username = input('username:') password = inp ...

  4. 扩展ValidationAttribute 1

    MVC中经常会用一些服务端对Model的验证. 服务端验证要继承自ValidationAttribute,并重写IsValid虚方法来自定义自己的验证规则. protected override Va ...

  5. SpringToolSuite/Eclipse中集成的Tomcat无法add Project时的解决版本

  6. nginx长连接设置

    http { keepalive_timeout 20; --长连接timeout keepalive_requests 8192; --每个连接最大请求数} events { worker_conn ...

  7. Atom插件推荐

    1.File Icons 为各种不同的文件显示icon 2.git plus 添加git的功能 3.atom-beauty 代码格式化工具 4.eclipse keybindings 在atom上使用 ...

  8. WindowsFormsHost使用问题

    WindowsFormsHost使用问题 WPF WindowsFormsHost 类 允许在 WPF 页面上承载 Windows Forms控件的元素. 命名空间:  System.Windows. ...

  9. mybatis动态调用表名和字段名

    以后慢慢启用个人博客:http://www.yuanrengu.com/index.php/mybatis1021.html 一直在使用Mybatis这个ORM框架,都是使用mybatis里的一些常用 ...

  10. MyEclipse中折叠和展开所有代码

    我们有些时候一个文件中会后很多函数,需要对其进行折叠或展开. Ctrl+Shift+/可以快速折叠所有代码 Ctrl+Shift+*可以快速展开所有代码