文档章节

四大组件之广播

火文乐武
 火文乐武
发布于 2016/05/18 22:14
字数 369
阅读 11
收藏 0
点赞 2
评论 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
博文 32
码字总数 17183
作品 0
郑州
Android工程师
要点提炼|开发艺术之四大组件

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

minmin_1123 ⋅ 2017/12/27 ⋅ 0

Android面试笔记基础篇

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

一阵啪啪啪 ⋅ 01/15 ⋅ 0

Android 四大组件(四)BroadcastReceiver

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

VNanyesheshou ⋅ 2017/07/20 ⋅ 0

android四大组件(详细总结)

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

Sheamus ⋅ 2015/09/28 ⋅ 0

Android四大组件(详细总结)

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

天蚕宝衣 ⋅ 2016/06/28 ⋅ 0

四大组件之广播接收器-Broadcast Receiver

前言 安卓四大组件包括Activity、Service、BroadcastReceiver和ContentProvider。本文主要讲解广播接受者(BroadcastReceiver)。广播是一种广泛运用的在应用程序之间传输信息的机制,而Broad...

u014527323 ⋅ 2017/03/15 ⋅ 0

Android广播那些事—开发者必须要知道的面试技巧

1、请描述一下 BroadcastReceiver BroadCastReceiver 是 Android 四大组件之一,主要用于接收系统或者 app 发送的广播事件。 广播分两种: 有序广播 无序广播。 内部通信实现机制: 无序广播...

codeGoogle ⋅ 2017/11/27 ⋅ 0

通读《疯狂Android讲义》笔记 01 ___Android基础篇

文 | 莫若吻 注: 1.本文内容参考 李刚的《疯狂Android讲义》一书。 2.此书适合有一定Java基础、初学Android的同学阅读与学习。我最近想巩固下Android基础知识就来拜读一下此书。 3.本文笔记...

莫若吻 ⋅ 2017/11/06 ⋅ 0

Android源码解析四大组件系列(八)---广播几个问题的深入理解

接上篇文章,这篇文章主要是总结前面知识,并且了解一些细节问题,加深对广播机制的理解,比如有播有序是怎么保证有序的?广播拦截机制是怎么实现的?广播发送超时了是怎么处理的?registerR...

LooperJing ⋅ 2017/07/20 ⋅ 0

关于四大基本组件的一个小总结:

【威哥说】今天威哥的视频将由美女曹老师亲自通过QQ依次发给大家,还没有加上曹老师QQ的兄弟姐妹们速度加上曹老师哟。1409615756 【活动链接】威哥全套视频获取通道1> 4大组件的注册 2> 4大组...

磨砺营 ⋅ 2016/10/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部