广播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 ...
随机推荐
- java测试框架整理
Test: Junit4+Hamcrest 不多说了,就靠着两个 import static org.hamcrest.Matchers.equalTo; import static org.juni ...
- spring 另开线程时的注入问题
spring web项目在启动的时候,就会完成各种组件的注入.在工作的过程中,遇到了这样一个问题: 一个serviceA中要新开一个线程来执行一项任务(假定这个任务是ClassA).ClassA中要用 ...
- 在github分支上上传空文件夹
GIT工具是依靠文件来识别文件夹的,对于空的文件夹是不能识别的.因此如果需要在代码中增加一个空文件夹,同时需要在文件夹中增加一个空文件.gitkeep 当批量增加空文件夹时,可以在GIT库的根目录下输 ...
- Leetcode: Concatenated Words
Given a list of words, please write a program that returns all concatenated words in the given list ...
- UEFI引导在GPT分区下安装win2008——抓住那只傲娇的win2008
上周遇到个客户DELL R520的服务器新采购了8块3T硬盘做备份服务器,raid配置5+1,一个磁21.8T.先用普通的装desktop OS的方法发现进去没raid盘,然后就按照官方的文档进入Li ...
- [Android] 转-LayoutInflater丢失View的LayoutParams
原文地址:http://lmbj.net/blog/layoutinflater-and-layoutparams/ View view = inflater.inflate(R.layout.ite ...
- python代码中碰到的问题及解决
一.针对raw_input输入的字符进行类型判断及转换: raw_input输入默认为字符,如果输入的是数字字符,想自动转换,即:输入为a,不做操作,如果输入为3,即转化为整数. 可利用try..ex ...
- Hiho coder 1236 2015 北京网络赛 Score
五维偏序..一开始被吓到了,后来知道了一种BITSET分块的方法,感觉非常不错. 呆马: #include <iostream> #include <cstdio> #incl ...
- Android 6.0 权限请求
在申请权限之前一定要在清单配置文件中添加该权限private static final int MY_PERMISSIONS_REQUEST_RECORD_AUDIO = 1; //随便定义 publ ...
- C#:复杂条件判断类型(练习)
/// <summary> /// 文件类型 /// </summary> public enum FileType { Courseware, //"课件" ...