Android框架中的广播机制
一、广播通过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框架中的广播机制的更多相关文章
- Android系统中的广播(Broadcast)机制简要介绍和学习计划
在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制:这些组件甚至是可以位于不同的进程中,这样它就像Binder机制一样,起到进程间通信的作用:本文通过一个 ...
- Android 中的广播机制
Android 中的广播机制 Android 中的广播,按照广播响应范围,可以分为应用内广播和全局广播.按照广播的接收方式,可以分为标准广播和有序广播. 广播的分类 响应范围 应用内广播:此类广播只能 ...
- 九、Android学习第八天——广播机制与WIFI网络操作(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 九.Android学习第八天——广播机制与WIFI网络操作 今天熟悉了An ...
- Numpy中的广播机制,数组的广播机制(Broadcasting)
这篇文章把numpy中的广播机制讲的十分透彻: https://jakevdp.github.io/PythonDataScienceHandbook/02.05-computation-on-arr ...
- Android中使用广播机制退出多个Activity
谷歌百度一下,Android中退出多个Activity的方法,大家讨论的很多. 在实习的时候,看到公司的项目退出多个Activity,是采用LinkedList方法,毕业设计的时候,也参照了那种方法. ...
- Android学习笔记(广播机制)
1.Android的广播机制介绍 收听收音机也是一种广播,在收音机中有很多个广播电台,每个广播电台播放的内容都不相同.接受广播时广播(发送方)并不在意我们(接收方)接收到广播时如何处理.好比我们收听交 ...
- Android学习总结——本地广播机制
为了简单解决广播的安全性问题,Android引入了一套本地广播机制,使用这个机制发出的广播只能在程序的内部进行传递,只能接受来自本应用程序发出的广播.否则当我们发送一些携带关键数据的广播可能被截获,一 ...
- Android简单实现BroadCastReceiver广播机制
Android中广播的作用是很明显的,当我们收到一条信息,可能我们的应用须要处理一些数据.可能我们开机.我们的应用也须要处理一些数据,这里都用到了广播机制,这里简单的实现了一个自己定义广播.看实例: ...
- numpy中的广播机制
广播的引出 numpy两个数组的相加.相减以及相乘都是对应元素之间的操作. import numpy as np x = np.array([[2,2,3],[1,2,3]]) y = np.arra ...
随机推荐
- 3、SSH高级服务
1.ssh服务生成新的公钥和私钥[root@rhel6_80 ~]# ssh-keygen Generating public/private rsa key pair. Enter file in ...
- Django Form and Modelform Admin定义 高级查询)
Django的form表单一般具有两种功能 1. 验证输入 2.输入HTML ---------模板----------- from django import forms class BookFor ...
- [zz]简单有效,在家就能锻炼!
简单有效,在家就能锻炼!下面这套动作美腿.美臀.瘦腰,一步到位,是全身塑形的必备,不用多练,每组1分钟.只需一把椅子即可,献给没有时间.条件去健身房的健身爱好者们! http://weibo.com/ ...
- Android学习笔记——权限解释
<!--允许读取电话状态SIM的权限--><uses-permission android:name="android.permission.READ_PHONE_STAT ...
- keil中出现Undefined symbol FLASH_PrefetchBufferCmd (referred from main.o)等问题解决办法
在keil中仿照别人的程序写了RCC初始化的程序,编译后出现以下问题 .\obj\pro1.axf: Error: L6218E: Undefined symbol FLASH_PrefetchBuf ...
- About SOuP
http://www.soup-dev.com - SOuP的强大我不必多说. - Maya 也可以开发出象houdini这样有趣的节点,这再soup之前是很难想象的.所以说soup的作者Peter的 ...
- pjax技术的应用
一.什么是PJAX? 现在有一些网站(apicloud, github)支持这样一种浏览方式,当你点击站内的一个连接的时候,不是传统的跳转到另外一个连接,而是类似ajax的局部刷新改变页面内容,但是 ...
- Js中JSON数据交换使用总结
Json格式简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是JavaScript原 ...
- install cpanm
wget http://cpanmin.us mv index.html cpanm chmod +x cpanm
- test spring in category
test tile package com.journaldev.spring.controller; import java.text.DateFormat; import java.util.Da ...