文档章节

四大组件之广播

火文乐武
 火文乐武
发布于 2016/05/18 22:14
字数 369
阅读 11
收藏 0

静态广播与动态广播:

1、动态注册的广播永远要快于静态注册的广播,与优先级无关

2、动态注册的广播不是常驻类型,随activity生命周期。注册时,应该在生命周期结束前进行移除。

静态注册的广播是常驻型,当应用程序关闭时,如果有信息广播来,程序也会被系统调用运行。

静态注册:

在清单列表中注册:

 <receiver android:name="com.example.day2201.MyReceiver">
            <intent-filter >
                <action android:name="aaa"/>
            </intent-filter>
        </receiver>

在代码中继承BroadcastReceiver

@Override
	public void onReceive(Context context, Intent intent) {

		String action = intent.getAction();
		if ("aaa".equalsIgnoreCase(action)) {
			String key = intent.getStringExtra("key");
			Toast.makeText(context, "the value is:" + key, Toast.LENGTH_LONG)
					.show();
		}
	}

动态注册

protected void onResume() {
		//	实例化一个receiver对象
		receiver = new MyReceiver();
		
		//	实例化一个IntentFilter对象(等同于manifest中的intent-filter节点)
		IntentFilter filter = new IntentFilter();

		//	filter中添加action,等同于在intent-filter节点中添加action节点
		filter.addAction("zz1603");
	
		//	实现注册,将receiver对象在过滤条件为filter时触发,(action== zz1603)
		registerReceiver(receiver, filter);
		super.onResume();
	}

2、取消

protected void onPause() {
		
		//	判断receiver对象是否为空,如果不为空则取消注册,只需要receiver对象
		if (receiver != null) {
			unregisterReceiver(receiver);
		}
		super.onPause();
	}

 

order:主要是将接收改为getResultExtras(),能够实现广播的篡改

public class MyReceiver02 extends BroadcastReceiver{

	@Override
	public void onReceive(Context context, Intent intent) {
		String action = intent.getAction();
		
		if("zz1603order".equalsIgnoreCase(action)){
			String content = intent.getStringExtra("key");
			
			Bundle bundle = getResultExtras(true);
			
			bundle.putString("order", "i am the changed data");
			
			setResultExtras(bundle);
			
			Toast.makeText(context, " my receiver 02, content = " + content, Toast.LENGTH_LONG).show();
		}
	}

 

 

 

© 著作权归作者所有

共有 人打赏支持
火文乐武
粉丝 7
博文 38
码字总数 17183
作品 0
郑州
Android工程师
要点提炼|开发艺术之四大组件

提到四大组件大家肯定再熟悉不过了,本篇侧重于对四大组件工作过程的分析: 概述 工作过程 Activity Service BroadcastReceiver ContentProvider 1.概述 a.Activity 类型:展示型组件。 作用...

minmin_1123
2017/12/27
0
0
Android面试笔记基础篇

基础一:安卓四大组件。 问题一:安卓四大组件是什么?应该怎么描述它们?生命周期?优先级? 答:四大组件就是Activity Service BroadCastReciver ContentProvider Activity:与用户交互等界...

一阵啪啪啪
01/15
1
0
Android 四大组件(四)BroadcastReceiver

转载请注明出处:http://blog.csdn.net/vnanyesheshou/article/details/75449100 Andorid四大组件Activity、Service、ContentProvider都已经总结了,详情可以参考如下: Android 四大组件(一...

VNanyesheshou
2017/07/20
0
0
android四大组件(详细总结)

android四大组件分别为activity、service、content provider、broadcastreceiver。 一、android四大组件详解 1、activity (1)一个Activity通常就是一个单独的屏幕(窗口)。 (2)Activit...

Sheamus
2015/09/28
38
0
Android四大组件(详细总结)

Android四大组件分别为activity、service、content provider、broadcast receiver。 一、Android四大组件详解 1、activity (1)一个Activity通常就是一个单独的屏幕(窗口)。 (2)Activit...

天蚕宝衣
2016/06/28
71
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Nginx防盗链、访问控制、Nginx解析PHP相关配置、Nginx代理

Nginx防盗链 在配置文件里写入以下内容: 用curl测试 访问控制 Nginx限制某些IP不能访问或者只允许某些IP访问。 配置文件写入如下内容: allow 表示允许访问的IP,deny限制访问的IP。 匹配正...

黄昏残影
13分钟前
0
0
自己动手实现RPC服务调用框架

转载 TCP的RPC 引言 本文利用java自带的socket编程实现了一个简单的rpc调用框架,由两个工程组成分别名为battercake-provider(服务提供者)、battercake-consumer(服务调用者)。 设计思路...

雨中漫步的鱼
16分钟前
0
0
Centos6.x安装之后的9件事

Centos6.x安装之后的9件事 这些不是必须都做的,只不过是我个人的习惯,在此记录一下。 1.修改yum源到国内 CentOS系统更换软件安装源 备份你的原镜像文件,以免出错后可以恢复。 mv /etc/yu...

叶云轩
21分钟前
5
0
springboot2 使用jsp NoHandlerFoundException

开发图片上传功能,为验证测试功能是否正常,使用JSP编写表单提交进行测试 开发完成后,请求API提示如下异常: No mapping found for HTTP request with URI [/WEB-INF/jsp/avatar_upload.j...

showlike
27分钟前
0
0
springboot踩坑记--springboot正常启动但访问404

一 spring boot的启动类不能直接放在main(src.java.main)这个包下面,把它放在有包的里面就可以了。 二 正常启动了,但是我写了一个controller ,用的@RestController 注解去配置的controlle...

onedotdot
28分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部