广播Broadcast Receiver
广播的类型:
1、标准广播(Normal broadcat)
完全异步执行的广播,所有广播接收器同一时间接收广播消息。
效率高,但无法被截断。
2、有序广播
同步执行的广播,同一时刻只能有一个广播接收器接收广播消息,当执行完毕后才会继续传递。
优先级高的先收到广播,并且可以截断广播。
接收系统广播:
注册:动态注册(代码)和静态注册(AndroidaManifest.xml)
动态广播:
1、继承Broadcastreceiver
2、重写onReceive()方法
3、注册registerReceiver()
4、动态注册的广播接收器一定要取消注册,unregisterReceiver()
5、声明权限在AndroidManifest.xml中
静态广播接收器在AndroidManifest.xml中通过<receiver>标签进行注册,
<receiver android:name=".BootCompleteReceiver ">
<intetn-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"> //开机广播
</intent-filter>
</recevier>
广播接收器中不允许开启线程,不要添加过多逻辑或进行任何耗时操作。
自定义广播:
1、标准广播:
(1)定义一个广播接收器
(2)在事件里加入自定义广播的逻辑
(3)构建Intent对象,传入要发送的广播的值
(4)调用sendBroadcast()方法,发送广播
(5)在AndroidManifest.xml中<receiver>注册
2、有序广播:
基本与标准广播一样,发送调用sendOrderedBroadcast()方法。
在AndroidManifest.xml中设置优先级<intent-filter android:priority="100">
截断广播调用abortBroadcast()方法
本地广播:(解决安全性问题)
使用LocalBroadcastManager对广播进行管理。
(1)通过LocalBroadcastManager.getInstance(this)获取他的实例
(2)构建LocalReceiver类
(3)通过LocalBroadcastManager的registerReceiver()方法进行动态注册。方法中包含2个参数localReceiver和intentfilter
(4)调用LocalBroadcastManager的sendBroadcast()方法进行发送广播
(5)在onDestroy()方法中取消注册
本地广播无法使用静态注册的方式来接收。
广播Broadcast Receiver的更多相关文章
- Android中Intent具体解释(二)之使用Intent广播事件及Broadcast Receiver简单介绍
通过第一篇的解说,我们已经看到了怎样使用Intent来启动新的应用程序组件,可是实际上他们也能够使用sendBroadcast方法来在组件间匿名的广播消息. 作为一个系统级别的消息传递机制,Inten ...
- Android笔记(五):广播接收者(Broadcast Receiver)
Android有四大组件,分别为:Activity(活动).Service(服务).Content Provider(内容提供器).Broadcast Receiver(广播接收者). 引入广播的目的 ...
- 第九章:四大组件之Broadcast Receiver
第九章:四大组件之Broadcast Receiver 一.广播的功能和特征 广播的生命周期很短,经过调用对象-->实现onReceive-->结束,整个过程就结束了.从实现的复杂度和 ...
- Android Broadcast Receiver 使用入门
Broadcast Receiver 的使用 1.Broadcast Receiver简介 2.Broadcast Receiver接收系统自带的广播 3.自 ...
- android 四大组件Broadcast Receiver
本文介绍Broadcast Receiver,包括几部分内容:Broadcast Receiver概述及实例.自定义Broadcast Receiver.Broadcast Receiver的实现细节 ...
- 9、四大组件之四-Broadcast Receiver
课程目标: 了解Android消息机制 掌握Broadcast发送消息的两种类型 掌握BroadcastReceiver接收消息的编程 重点难点: sendOrderedBroadcast()的理解 ...
- android的Broadcast receiver
broadcast receiver是用来监听intent的. android大量使用了broadcast receiver,比如:开机.电话打进来.发送消息,手机电量过低 有两种方式注册broadc ...
- Android学习笔记--广播(Broadcast)
1.Android广播分类 android的广播类型分为两类:标准广播和有序广播. 标准广播:异步广播,广播发出后,所有注册了的广播接收器都会同时接收到该广播.打个比方:做地铁过程中的语音播报,当列车 ...
- Android Broadcast Receiver注册
之前有关 Broadcast Receiver的链 动态注册 1.我们新建一个广播接受类,我们创建一个内部类让他继承BroadcastReceiver,并且重新其中当有广播来到时执行的方法onRece ...
随机推荐
- LeetCode Sum of Left Leaves
原题链接在这里:https://leetcode.com/problems/sum-of-left-leaves/ 题目: Find the sum of all left leaves in a g ...
- 与MySQL传统复制相比,GTID有哪些独特的复制姿势?
与MySQL传统复制相比,GTID有哪些独特的复制姿势? http://mp.weixin.qq.com/s/IF1Pld-wGW0q2NiBjMXwfg 陈华军,苏宁云商IT总部资深技术经理,从事数 ...
- Android 解析Json_fastJson
FastJSON是一个很好的java开源json工具类库,相比其他同类的json类库,它的速度的确是fast,最快!但是文档做得不好,在应用前不得不亲测一些功能. 实际上其他的json处理工具都和 ...
- 配置Openfire的eclipse项目
官方文档在这里 Install JDK Download JDK and install them. The least version should be 1.5. I use 1.6. Sorry ...
- 数据库触发器inserted和deleted详解
create trigger updateDeleteTime on user for update as begin update user set UpdateTime=(getdate()) ...
- DNS CNAME的一些细节
1, 概述 DNS中的CNAME可以减轻运维压力,使得已有的DNS配置具有一定的灵活性和可扩展性.本文对CNAME中的一些细节做阐述, 使DNS服务器的运维人员和开发人员能合理地使用CNAME. 2, ...
- 报错:Failed to instantiate the default view controller for UIMainStoryboardFile 'MainStoryboard' - perhaps the designated entry point is not set?
原因分析:在StoryBoard中没有一个view controller设置了Initial Scene. 解决方案:在Storyboard中,选择一个view conroller作为story bo ...
- 在nginx日志的access log中记录post请求的参数值
背景:有时程序偶出现参数少了或没有提交到下一个链接Url里后出现问题,如何查呢,最好的办法是在nginx上的加post参数,以定位到问题才有可能对某个UIR的代码出现的问题进行排查. og_forma ...
- 对jquery分页的升级
以前写的分页用了好久了,但是分页时除了传页面外有时还要传一些其它参数,以前操作时要把传的参数放到隐藏hidden中,分页时在取出来,这样比较麻烦,今天无事,重新包装了一下 直接上代码吧 css用了bo ...
- phonegap android 输入法弹出会遮盖表单框的解决办法
phonegap android 当页面内容比较多,表单超出屏幕范围时,点击输入,输入法会遮盖住表单框,而且无法向上滑动. 经过测试发现,是由于config.xml中设置了 FullScreen 的全 ...