Android 广播学习笔记
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 广播学习笔记相关推荐
- java/android 设计模式学习笔记(1)--- 单例模式
前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使 ...
- Android Binder 学习笔记
前言: Binder是Android给我们提供的一种跨进程通信方式.理解Binder能帮助我们更好的理解Android的系统设计,比如说四大组件,AMS,WMS等系统服务的底层通信机制就都是基于Bin ...
- Android:日常学习笔记(8)———探究UI开发(2)
Android:日常学习笔记(8)---探究UI开发(2) 对话框 说明: 对话框是提示用户作出决定或输入额外信息的小窗口. 对话框不会填充屏幕,通常用于需要用户采取行动才能继续执行的模式事件. 提示 ...
- Android:日常学习笔记(6)——探究活动(3)
Android:日常学习笔记(6)--探究活动(3) 活动的生命周期 返回栈 Android中的活动是可以叠加的,我们每启动一个新活动,就会覆盖在原来的活动上,点击Back以后销毁最上面的活动,下面的 ...
- Android:日常学习笔记(8)———探究UI开发(5)
Android:日常学习笔记(8)---探究UI开发(5) ListView控件的使用 ListView概述 A view that shows items in a vertically scrol ...
- Android Studio --- [学习笔记]TCP(第2弹)、GridView、ScrollView
说明 这篇主要接上一篇Android Studio - > [学习笔记]RadioButton.CheckBox.ImageView.ListView.TCP的三次握手 对上面回答的细解,并用J ...
- Android Studio --- [学习笔记]RadioButton、CheckBox、ImageView、ListView、TCP的三次握手
说明 源代码 在2.x里有TCP的三次挥手与四次握手,先对它进行简单的回答(百度).预计在下一篇里,会继续说明TCP 接上一篇: Android Studio - > [学习笔记]Button. ...
- Android动画学习笔记
Android实战经验之图像处理及特效处理的集锦 https://www.oschina.net/question/231733_44154 Android动画学习笔记 3.0以前,android支持 ...
- Android 开发学习笔记:七大知识点板块汇总
前言 我从事 Android 开发行业也有些年头,工作期间也接触过很多 Android 开发者, 因此也非常清楚 程序员最大的限制并非年龄而是实力: 但大多数初中级Android工程师,想要提升技能, ...
- 安卓开发Android studio学习笔记12:读取解析XML(案例演示)
Android studio学习笔记 第一步:配置Student.XML 第二步:配置activity_main.xml 第三步:配置student.xml 第四步:配置Student用户类 第五步: ...
最新文章
- LuoguP2617 Dynamic Rankings (动态主席树学习理解)
- 名字就叫nfs-(network file system)
- java是什么 需要学什么_Java是什么,Java需要学习哪些内容?如何自学Java?
- 网络工具中的瑞士军刀——netcat工具简介
- mysql 数据表创建字段类型_MySQL 数据类型简介 创建数据表及其字段约束
- HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比
- plan explorer mysql_plan explorer支持oracle吗
- 开发机直连 Docker 中的 Redis 容器小教程
- SQLserver插入\更新中文乱码
- 7.Java反射面试题
- 好看视频出击,从Q2财报看百度的短视频谋局
- 【收藏】如何开始创业
- Docker 之 高级篇(应用复杂安装、DockerFile、Docker网络、Docker-compose、可视化工具)
- 【Unity3D小功能】Unity3D中在创建完项目后自动创建文件夹列表
- Silverlight 2.5D RPG游戏技巧与特效处理:(十四)体感系统
- java8新特性(2)-Lambda表达式
- 微信小程序—自定义组件
- 鸿蒙掉不掉凤羽符,《诛仙3》灌注符怎么得?装备各部件灌注符获取方式一览...
- 第五章 矩阵的相似对角化
- 京东一面:Nginx 禁止国外 IP 访问网站!
热门文章
- c语言学号信息管理系统,c语言学籍信息管理系统设计
- linux进程号转换成16进制,linux-shell 脚本转换 十六进制 十进制 八进制 二进制
- VTK(四)---VMTK血管中心线提取
- redhat linux raid5,Linux 红帽 磁盘管理~~~~RAID5+LVM
- CNN卷积层里的多输入多输出通道channel 动手学深度学习v2 pytorch
- 翻译: 如何使用 Xcode 的内存图调试器检测 iOS 内存泄漏并保留周期
- 1949-2017闰年 c语言,C语言编写方案-万年历选编.doc
- 从有序数组中找出某个数出现的次数
- 利用反射给属性赋值,调用方法,调用构造器--getDeclaredField,getDeclaredMethod,getDeclardConstructor
- python图像边缘检测报告_python计算机视觉2:图像边缘检测