- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
广播式网络就是某计算机发送的消息,网络内所有计算机都可以收到。 广播(broadcasting)是多点投递的最普遍的形式,它向每一个目的站投递一个分组的拷贝。它可以通过多个单次分组的投递完成,也可以通过单独的连接传递分组的拷贝,直到每个接收方均收到一个拷贝为止。 * * Android广播的优势: 1、扩展了Android中的事件模型,提高了应用程序的可扩展性。 2、方便了不同应用程序共享数据 3、提高了应用程序的运行效率 * Broadcast Receiver(广播接收器)包含两部分功能:一是发送广播消息,另一个是接收广播消息。 系统和应用程序都可以发送广播消息,发送广播实际上就是调用sendBroadCast()方法向系统内部 发送一个Intent对象,这与startActivity()的作用是类似的,所不同的是:发送广播只能启动 Broadcast Receiver对象,而不会启动任何Activity或者Service对象。 所谓的接收广播消息,即Broadcast Receiver,它和Activity、Service在架构上是平等的,都是 为了完成某个任务,所不同的是:Broadcast Receiver只能与sendBroadcast()发送的Intent匹配 。 Broadcast Receiver没有界面,其生命周期非常短,只有在执行onReceive()方法中才有效,一旦 onReceive()方法执行完毕,该Broadcast Receiver的生命周期就会结束。因此,不要在onReceive() 方法内部执行一些具有回调功能的异步函数,因为当异步函数回调时,Broadcast Receiver对象的 生命周期已经结束了。从程序的角度讲,就意味着该Broadcast Receiver对象已经被销毁,回调函数 所引用的Broadcast Receiver对象是一个不存在的对象,于是回调会发生异常。 广播消息分为两类:一类是系统已经定义的消息,比如电池电量低、时区发生变更、打开屏幕等; 另一类是自定义消息,自定义广播可以通过context.sendBroadcast()方法发送。事实上,系统 内部广播也是通过该方法发送的。 接收消息的方式也有两种:一种是静态接收,即当程序安装时,就声明了其内部有广播接收器以及 可以接收的广播消息类型,静态接收多用于处理系统广播消息;另一种是动态接收,在接收前, 通过调用 registerReceiver()方法向系统注册一个Receiver对象,动态接收多用于一个应用程序 的内部,所接收的消息大多是自定义消息。动态接收的好处是可以节省系统开销,因为只有在 需要的时候才打开广播接收器。 每个接收器内部都有一个onReceive()方法,广播消息产生时,系统会通知该广播所有的接收器,对应 的onReceiver()方法会被执行。广播消息有两种方式,并会导致不同的消息处理方式:一种是同步广播 ,另一种是异步广播。 同步广播使用sendOrderedBradCast()发送消息,接收器是同步执行,即每次执行一个Receiver,待 该Receiver返回后再执行下一个。执行的顺序按照Receiver的优先级,可以通过android:priority属性 在xml文件中指定Receiver的优先级。在执行的过程中,任何一个Receiver都可以终止消息处理, 这会 导致后续的Receiver得不到消息。 异步广播使用sendBroadcast()发送消息,此时接收器会同时执行,彼此独立。系统内部的消息广播采用 的就是这种方式。 * C:\android\android-sdk-windows\docs\reference\android\content\Intent.html * 1、Receiver对象接收的消息本质上是Intent,系统内部以及定义了很多广播消息类型, 例如电池电量低、屏幕开启或者关闭、系统引导完成等,系统内部广播这些消息使用的 也是sendBroadcast()。多数应用中,Receiver接收的是系统发出的消息。 2、如第一个问题所述,系统使用sendBroadcast()发送广播,应用程序也可以使用该方法 发送广播。当系统发送这些广播后,同样经过Intent匹配找到相应的Receiver对象并启动。 这与Activity或者Servcie一样。 3、系统内部定义的广播消息,可以查阅官方文档: C:\android\android-sdk-windows\docs\reference\android\content\Intent.html 4、当然可以自定义广播消息。自定义广播无非是给Intent对象的Action字段赋予 自定义的值而已
您可能关注的文档
最近下载
- 人教版二年级上册数学全册教学设计(配2025年秋新版教材).docx
- 2024-2025学年北京市东城区高三上学期期末统一检测语文试卷含详解.docx VIP
- 射血分数保留心衰(HFpEF)的临床诊治题库答案-2025年华医网继续教育.docx VIP
- 《景观设计概述》课件.ppt VIP
- 浙江宁波国际投资咨询有限公司招聘笔试题库2025.pdf
- 悬浮床渣油加氢工艺研究.docx VIP
- Unit 1 Letters in Our life(课件)教科版(2024)英语三年级上册.pptx VIP
- 2025云南电网有限责任公司社会招聘9人(第三批)笔试备考题库及答案解析.docx VIP
- 《电子政务协同办公系统电子文件应用与管理技术要求》.doc
- 2024年南京工业职业技术大学单招语文考试试题及答案解析.docx VIP
文档评论(0)