Android移动应用开发教程 课件 5.1、广播处理_第1页
Android移动应用开发教程 课件 5.1、广播处理_第2页
Android移动应用开发教程 课件 5.1、广播处理_第3页
Android移动应用开发教程 课件 5.1、广播处理_第4页
Android移动应用开发教程 课件 5.1、广播处理_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广播处理Android汇报人:XXX目录3456广播接收器注册广播接收器注销广播接收器生命周期发送广播广播机制概述案例实现21701章节PART广播机制概述添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字在Android中,有一些操作完成以后,会发送广播,比如发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。广播机制最大的特点就是发送方并不关心接收方是否接到数据,也不关心接收方是如何处理数据的。广播类似于事件处理,只不过事件的处理机制是程序组件级别的,在同一个程序内部,而广播处理机制是系统级别的(可用于不同应用程序之间)。BroadcastReceiver中文意思是广播接收器,它是接收广播消息并对消息作出反应的组件,发送广播实际上就是调用sendBroadCast()方法向系统内部发送一个Intent对象除了可以自定义广播事件之外,Android还提供了许多标准的广播Action广播机制概述02章节PART发送广播添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字广播消息有两种,一种是系统广播,另一种是自定义广播。发送广播的方式有两种,一种是同步广播,另一种是异步广播。同步广播使用sendOrderedBroadcast()发送消息,接收器是顺序执行,可使用abortBroadcast()方法截断广播;异步广播使用sendBroadcast()发送消息,此时接收器会同步执行,彼此独立。发送广播Android中事件的广播机制是构建Intent对象,再调用sendBroadcast(intent)或sendOrderedBroadcast(intent,receiverPermission)方法向系统内部发送一个Intent对象,发送广播的主要代码如下:

//先创建Intent对象,指定广播目标ActionIntentintent=newIntent("MyReceiver_Action");

//可通过Intent携带消息intent.putExtra("msg","发送广播");

//发送广播消息sendBroadcast(intent);03章节PART广播接收器添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字广播的接收是通过继承一个BroadcastReceiver的类来实现,覆盖其onReceive()方法。广播接收器收到广播Intent,对Intent进行判断。如果该接收器满足条件,则执行onReceiver()方法。广播接收器publicclassMyReceiverextendsBroadcastReceivers{@OverridePublicvoidonReceive(Contextcontext,Intentintent){//对接收的消息进行处理}}04章节PART注册广播接收器添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字(1)静态注册:在系统配置文件AndroidManifest.xml的application节里中定义receiver并设置要接收的action。自Android8.0后,除少数系统广播外,不允许将广播发送到不明确的应用程序广播接收器中,所以采用静态注册的自定义广播接收器是接收不到广播消息的。(2)动态注册方式也叫Java注册,它是在activity里面调用函数来注册,和静态的内容差不多。注册广播接收器<receiverandroid:name="MyReceiver"android:enabled="true"android:exported="true"><intent-filterandroid:priority="1000"><actionandroid:name="MyReceiver_Action"/></intent-filter></receiver>MyReceiverreceiver=newMyReceiver();//创建过滤器,并指定action,使之用于接收同action的广播IntentFilterfilter=newIntentFilter("MyReceiver_Action");//注册广播接收器registerReceiver(receiver,filter);05章节PART注销广播接收器添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字对动态注册的广播接收器,如果程序结束后没有注销Receiver,那么该Receiver会一直处于接收广播消息就绪状态,直到该程序的Context被销毁注销广播接收器一般会在Activity的onPause()、onDestroy()方法中调用unregisterReceiver()方法注销BroadcastReceiver对象。注销广播接收器的方法为:

If(receiver!=null)unregisterReceiver(receiver);06章节PART生命周期添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字广播接收器仅在它执行onReceiver()方法时处于活跃状态。当onReceive()返回后,它即为失活状态。生命周期拥有一个活跃状态的广播接收器的进程被保护起来而不会被杀死,但仅拥有失活状态组件的进程则会在其他进程需要它所占有的内存的时候随时被杀掉。所以,如果响应一个广播信息需要很长的一段时间,一般会将其纳入一个衍生的线程中去完成,而不是在主线程内完成它07章节PART案例实现添加相关标题文字添加相关标题文字添加相关标题文字添加相关标题文字新建项目,设置基本信息包为“com.example.Sampl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论