1、首先我们要在Manifest.xml文件中配置一个<receiver/>标签,这个标签必须有一个android:name属性,值为继承自BroadcastReceiver类的接收器类,并复写onReceiver方法,在该方法中处理接收到广播后需要处理的事情!
2、<receiver/>标签还有一个子标签为<intent-filter/>,这个标签很重要,是指定接收器需要接收哪种广播

添加的监听器配置文件内容
MyBroadCast是继承了BroadcastReceiver的类

<receiver android:name="MyBroadCast">  <intent-filter>  <action android:name="hb.com.BroadCastDemo.MYBROADCAST"/>  </intent-filter>  </receiver> 

给按钮添加绑定的事件,发送广播的过程

btn.setOnClickListener(new Button.OnClickListener(){      @Override  public void onClick(View v) {          System.out.println("onClick");          Intent intent = new Intent();          intent.setAction(MYBROADCAST);          sendBroadcast(intent);      }  });  

接收广播处理的过程

public class MyBroadCast extends BroadcastReceiver {      @Override  public void onReceive(Context context, Intent intent) {          System.out.println("onReceive");      }  }  

备注:在AndroidManifest.xml文件中注册,无论应用程序是否处于开启或关闭状态,它任然会是监听状态,这种方式不是很合理
在应用程序的代码中进行注册,registerReceiver()和unregisterReceiver()两个方法

Notification和NotificationManager的使用

通过他们可以显示广播信息的内容、图标以及振动等信息

显示效果:类似于收到短信的提示信息

public class BroadCastDemo extends Activity {      Notification nf;      NotificationManager nm;  private static final String MYBROADCAST = "hb.com.BroadCastDemo.MYBROADCAST";  private static final int MYID = 1;      @Override  public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);          setContentView(R.layout.main);  //得到NotificationManager对象          String service = this.NOTIFICATION_SERVICE;          nm = (NotificationManager)this.getSystemService(service);         //实例化Notification          nf = new Notification();          nf.icon = R.drawable.icon;          nf.tickerText = "notification test";          nf.when = System.currentTimeMillis();  

        findViewById(R.id.broadCastBtn).setOnClickListener(new Button.OnClickListener(){              @Override  public void onClick(View v) {                  Intent intent = new Intent();  //发送自定义的广播类型                  intent.setAction(MYBROADCAST);                  PendingIntent pi = PendingIntent.getBroadcast(BroadCastDemo.this, 0, intent, 0);                  nf.setLatestEventInfo(BroadCastDemo.this, "my title", "my content", pi);                  nm.notify(MYID, nf);              }          });  

        findViewById(R.id.cancelCastBtn).setOnClickListener(new Button.OnClickListener(){              @Override  public void onClick(View v) {  //取消广播                  nm.cancel(MYID);              }          });      }  }

AlarmManager的使用
AlarmManager提供了一种系统级的提示服务,允许你安排在将来的某个时间执行一个服务

findViewById(R.id.alarmManagerOpen).setOnClickListener(new Button.OnClickListener(){      @Override  public void onClick(View v) {          Intent intent = new Intent();          intent.setAction(MYBROADCAST);          PendingIntent pi = PendingIntent.getBroadcast(BroadCastDemo.this, 0, intent, 0);  long time = System.currentTimeMillis();          AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);          am.setRepeating(AlarmManager.RTC_WAKEUP, time, 8 * 1000, pi);      }  });  

--------------------------------

娇妻如云 http://www.510h.com

剑道独尊 http://www.95wu.com

转载于:https://www.cnblogs.com/9alexking/archive/2011/12/22/2296892.html

Android 广播学习笔记相关推荐

  1. java/android 设计模式学习笔记(1)--- 单例模式

    前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使 ...

  2. Android Binder 学习笔记

    前言: Binder是Android给我们提供的一种跨进程通信方式.理解Binder能帮助我们更好的理解Android的系统设计,比如说四大组件,AMS,WMS等系统服务的底层通信机制就都是基于Bin ...

  3. Android:日常学习笔记(8)———探究UI开发(2)

    Android:日常学习笔记(8)---探究UI开发(2) 对话框 说明: 对话框是提示用户作出决定或输入额外信息的小窗口. 对话框不会填充屏幕,通常用于需要用户采取行动才能继续执行的模式事件. 提示 ...

  4. Android:日常学习笔记(6)——探究活动(3)

    Android:日常学习笔记(6)--探究活动(3) 活动的生命周期 返回栈 Android中的活动是可以叠加的,我们每启动一个新活动,就会覆盖在原来的活动上,点击Back以后销毁最上面的活动,下面的 ...

  5. Android:日常学习笔记(8)———探究UI开发(5)

    Android:日常学习笔记(8)---探究UI开发(5) ListView控件的使用 ListView概述 A view that shows items in a vertically scrol ...

  6. Android Studio --- [学习笔记]TCP(第2弹)、GridView、ScrollView

    说明 这篇主要接上一篇Android Studio - > [学习笔记]RadioButton.CheckBox.ImageView.ListView.TCP的三次握手 对上面回答的细解,并用J ...

  7. Android Studio --- [学习笔记]RadioButton、CheckBox、ImageView、ListView、TCP的三次握手

    说明 源代码 在2.x里有TCP的三次挥手与四次握手,先对它进行简单的回答(百度).预计在下一篇里,会继续说明TCP 接上一篇: Android Studio - > [学习笔记]Button. ...

  8. Android动画学习笔记

    Android实战经验之图像处理及特效处理的集锦 https://www.oschina.net/question/231733_44154 Android动画学习笔记 3.0以前,android支持 ...

  9. Android 开发学习笔记:七大知识点板块汇总

    前言 我从事 Android 开发行业也有些年头,工作期间也接触过很多 Android 开发者, 因此也非常清楚 程序员最大的限制并非年龄而是实力: 但大多数初中级Android工程师,想要提升技能, ...

  10. 安卓开发Android studio学习笔记12:读取解析XML(案例演示)

    Android studio学习笔记 第一步:配置Student.XML 第二步:配置activity_main.xml 第三步:配置student.xml 第四步:配置Student用户类 第五步: ...

最新文章

  1. LuoguP2617 Dynamic Rankings (动态主席树学习理解)
  2. 名字就叫nfs-(network file system)
  3. java是什么 需要学什么_Java是什么,Java需要学习哪些内容?如何自学Java?
  4. 网络工具中的瑞士军刀——netcat工具简介
  5. mysql 数据表创建字段类型_MySQL 数据类型简介 创建数据表及其字段约束
  6. HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比
  7. plan explorer mysql_plan explorer支持oracle吗
  8. 开发机直连 Docker 中的 Redis 容器小教程
  9. SQLserver插入\更新中文乱码
  10. 7.Java反射面试题
  11. 好看视频出击,从Q2财报看百度的短视频谋局
  12. 【收藏】如何开始创业
  13. Docker 之 高级篇(应用复杂安装、DockerFile、Docker网络、Docker-compose、可视化工具)
  14. 【Unity3D小功能】Unity3D中在创建完项目后自动创建文件夹列表
  15. Silverlight 2.5D RPG游戏技巧与特效处理:(十四)体感系统
  16. java8新特性(2)-Lambda表达式
  17. 微信小程序—自定义组件
  18. 鸿蒙掉不掉凤羽符,《诛仙3》灌注符怎么得?装备各部件灌注符获取方式一览...
  19. 第五章 矩阵的相似对角化
  20. 京东一面:Nginx 禁止国外 IP 访问网站!

热门文章

  1. c语言学号信息管理系统,c语言学籍信息管理系统设计
  2. linux进程号转换成16进制,linux-shell 脚本转换 十六进制 十进制 八进制 二进制
  3. VTK(四)---VMTK血管中心线提取
  4. redhat linux raid5,Linux 红帽   磁盘管理~~~~RAID5+LVM
  5. CNN卷积层里的多输入多输出通道channel 动手学深度学习v2 pytorch
  6. 翻译: 如何使用 Xcode 的内存图调试器检测 iOS 内存泄漏并保留周期
  7. 1949-2017闰年 c语言,C语言编写方案-万年历选编.doc
  8. 从有序数组中找出某个数出现的次数
  9. 利用反射给属性赋值,调用方法,调用构造器--getDeclaredField,getDeclaredMethod,getDeclardConstructor
  10. python图像边缘检测报告_python计算机视觉2:图像边缘检测