转载请声明:http://blog.csdn.net/u013519020/article/details/52215031

概述

1、广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播是源自于系统代码的──比如,通知时区改变、电池电量低、拍摄了一张照片或者用户改变了语言选项。应用程序也可以进行广播──比如说,通知其它应用程序一些数据下载完成并处于可用状态。

2、应用程序可以拥有任意数量的广播接收器以对所有它感兴趣的通知信息予以响应。所有的接收器均继承自BroadcastReceiver基类。

3、广播接收器没有用户界面。然而,它们可以启动一个activity来响应它们收到的信息,或者用NotificationManager来通知用户。通知可以用很多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。

属性卡

姓名:BroadcastReceiver

身份:四大组(tian)件(wang)之一。

成员:广播的接受者和广播的发送者。
近亲:收音机

星级:远古神卡

限制:一个程序可以有任意多个。

详情:实际上是一种全局监听器,监听全局的广播消息。

广播的种类:

1.普通广播:所有的接收者都可以接收该广播。同级别接收顺序随机,级别低后收到,接收器不能截断或处理广播,同级别动态注册高于静态注册。

2.有序广播:可以设定接收的顺序,优先级在intent-filter中的priority中声明,范围:-1000到1000,值越大优先级越高,可以终止广播意图的继续传播,接收者可以修改内容。同级别接收是随机的,能截断修改广播,同级别动态注册高于静态注册。

3.异步广播:不能将处理的结果传给下一个接收者,不能终止广播。

使用步骤:

1.创建 BroadcastReceiver对象(继承抽象类)------2.注册------3.发送广播消息

事件分类
1.系统的广播事件
2.自定义的广播事件,Intent intent = new Intent(" 触发器的监视字符串");
注册方式
1.XML文件里注册
2.在程序中以registerReceiver()注册
-------------------------代码实现------------------------------
创建对象:
//创建一个BroadcastReceiver 对象
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver(){
//接收到广播后要执行的内容@Overridepublic void onReceive(Context context, Intent intent) {System.exit(0);}};
注册:
IntentFilter intent = new IntentFilter();
//设置广播的频道,相当于过滤器名
intent.addAction("com.ambow.sendMessage");
//注册
this.registerReceiver(mBroadcastReceiver, intent);

广播:

//创建消息
Intent intent=new Intent("com.ambow.sendMessage");
//发出广播
sendBroadcast(intent);

注意:

     1、BroadcastReceiver的寿命只有五秒左右,五秒真男人!不要做耗时操作,不要超过五秒,后果就是程序出现无响应错误。
     2、不要用来创建子线程,或使用子线程做耗时操作,因为一旦子线程没有在BroadcastReceiver被销毁之前完成任务,就会失去对于子线程的操控,可能会造成内存泄漏。
     3.对于耗时任务多交于service来处理。

广播(BroadcastReceiver)---安卓中的四大天王之一相关推荐

  1. 【Android 安全】DEX 加密 ( Application 替换 | 分析 BroadcastReceiver 组件中调用 getApplication() 获取的 Application )

    文章目录 一. Service 中的 getApplication() 方法分析 二. ActivityThread 中的 H 处理 RECEIVER 消息 三. ActivityThread 中的 ...

  2. 安卓中实现两端对齐,中间fill_parent的方法

    安卓中实现两端对齐,中间fill_parent的方法 <?xml version="1.0″ encoding="utf-8″?> <LinearLayout x ...

  3. 多媒体计算机技术论文结束语,论述多媒体计算机技术在广播电视工程中的应用成果论文...

    论述多媒体计算机技术在广播电视工程中的应用成果论文 摘要:随着我国经济和科学技术的不断发展和进步, 人民生活水平的逐步提高, 计算机技术在社会各个领域得到了广泛应用.在这一发展趋势下, 多媒体计算机技 ...

  4. android密码dakay,安卓中按钮点击事件onClick的两种实现方式

    很多的语言都有一些共同的特点,比如OnClick这个东西,可能我们能在js中见到,当然在安卓中也有,可能其他的编程语言也会有这个东西,刚好今天学了这个玩意在安卓中的写法. 点击事件大多用在Button ...

  5. Android:在安卓中使用TFLite模型

    在安卓中使用TFLite不需要再进行loadlibrary. 参考:基于Android搭建tensorflow lite,实现官网的Demo以及运行自定义tensorflow模型(一) 1.安装最新版 ...

  6. android 增删改查错误,安卓中使用HttpURLConnection进行增删改查操作(包括后端讲解)(一)...

    在安卓中我们使用HttpURLConnection来进行请求 我们看主activity的代码:public class TestHttpActivity extends Activity implem ...

  7. 安卓中fragment的使用全解

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓中Fragment可以没有UI,不需要manifest中注册,只能嵌套在一个activity存在. 在Fragment基础上,系统派生处理另外几种 ...

  8. 安卓中dumpsys命令使用

    安卓中dumpsys命令使用 adb shell dumpsys,默认打印出当前系统所有的服务名,在后面加上具体的服务名. 一,需要列出当前运行的服务,可运行: adb shell dumpsys | ...

  9. 安卓中图片占用内存大小分析

    相关概念: 位深 色彩空间 颜色通道 int型占用字节 位深: 位是二进制的位.位深是指计算机系统中图片的一个像素点占用的二进制位数.例如位深32,就是使用2^8 = 32 位二进制来表示像素值.例如 ...

最新文章

  1. IncDec Sequence(codevs 2098)
  2. 为什么平头哥做芯片如此迅猛?
  3. ubuntu16.04+cuda7.5
  4. CSS3 Media Queries:移动 Web 的完美开端
  5. 首个卡车全栈自动驾驶系统发布:嬴彻轩辕!年内量产上路
  6. 单纯形法表格法例题详解_优化 |运筹学线性规划单纯形法之求解
  7. Objective-c(1)
  8. mvc ajax提交多选,javascript – 如何使用Jquery AJAX调用MVC Action然后在MVC中提交表单?...
  9. 2016年3月23日作业
  10. word List 07
  11. android多点触控自由对图片缩放
  12. 背包——多重背包(hdu2191)
  13. 华米OV 万亿 IoT 争夺战
  14. 第 4 章 设计模式概述
  15. 正则表达式确实是一种考验
  16. sql update date类型_数据工厂可视化操作与SQL查询——1.基础篇
  17. ecg 幅度_用ECG和PPG测血压靠谱吗?有什么比较好的算法?
  18. oracle 9i/10g/11g(11.2.0.3)安装包和PATCH下载地址汇总
  19. 好用小工具及文章推荐推荐
  20. Matlab取整函数之Floor\fix\round\ceil取余函数rem\mod

热门文章

  1. Matplotlib下plt常用指令总结
  2. JavaScript history对象(back()、forward()、go())
  3. Android定制开机动画与logo
  4. nginxconsul
  5. Dual Illumination Estimation for Robust Exposure Correction阅读札记
  6. Superset可视化之制作地图
  7. 想进入IT行业,自学还是选择培训机构。
  8. 新中大服务器端数据库未能连接,新中大服务器数据库未能连接
  9. #AMBER 分子动力学软件Amber18介绍与基础教程(持续更新)
  10. 如何成为一名程序员?