文档章节

四大组件之广播

火文乐武
 火文乐武
发布于 2016/05/18 22:14
字数 369
阅读 12
收藏 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();
		}
	}

 

 

 

© 著作权归作者所有

共有 人打赏支持
上一篇: service
下一篇: the Tab of ActionBar
火文乐武
粉丝 7
博文 38
码字总数 17183
作品 0
郑州
Android工程师
私信 提问
Android面试笔记基础篇

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

一阵啪啪啪
01/15
1
0
要点提炼|开发艺术之四大组件

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

minmin_1123
2017/12/27
0
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

没有更多内容

加载失败,请刷新页面

加载更多

CentOS配置Tomcat监听80端口,虚拟主机

Tomcat更改默认端口为80 更改的配置文件是: /usr/local/tomcat/conf/server.xml [root@test-a ~]# vim /usr/local/tomcat/conf/server.xml # 找到 Connector port="8080" protocol="HTTP/1......

野雪球
今天
5
0
《稻盛和夫经营学》读后感心得体会3180字范文

《稻盛和夫经营学》读后感心得体会3180字范文: 一代日本经营之圣稻盛和夫凭借刻苦勤奋的精神以及深植于佛教的商业道德准则,成为了“佛系”企业家的代表人物。在《稻盛和夫经营学》“领导人...

原创小博客
今天
3
0
java框架学习日志-5(常见的依赖注入)

依赖注入(dependency injection) 之前提到控制反转(Inversion of Control)也叫依赖注入,它们其实是一个东西,只是看的角度不同,这章详细说一下依赖注入。 依赖——指bean对象创建依赖于...

白话
今天
4
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
今天
2
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部