当前位置: 首页 > article >正文

Android习题第7章广播

本章习题

一、填空题

  1. ________用来监听来自系统或者应用程序的广播。
  2. 广播接收者的注册方式有两种,分别是________和________。

二、判断题

  1. Broadcast表示广播,它是一种运用在应用程序之间传递消息的机制。( )
  2. 在清单文件注册广播接收者时,可在<intent-filter>标签中使用priority属性设置优先级别,属性值越大优先级越高。( )
  3. 有序广播的广播效率比无序广播更高。( )
  4. 动态注册的广播接收者的生命周期依赖于注册广播的组件。( )
  5. Android中广播接收者必须在清单文件里面注册。( )

三、选择题

  1. 下列选项中,关于广播类型的说法,错误的是( )(多选)

A、Android中的广播类型分有序广播和无序广播

B、无序广播是按照一定的优先级进行接收

C、无序广播可以被拦截,可以被修改数据

D、有序广播按照一定的优先级进行发送

  1. 广播机制作为Android组件间的通信方式,使用的场景有哪些( )(多选)

A、在同一个APP内部的同一组件内进行消息通信

B、不同APP的组件之间进行消息通信

C、在同一个APP内部的不同组件之间进行消息通信(单个进程)

D、在同一个APP具有多个进程的不同组件之间进行消息通信

四、简答题。

  1. 简述广播机制的实现过程。
  2. 简述有序广播和无序广播的区别。

五、编程题

编写一个程序,实现无序广播的发送和接收。

一、填空题

1、BroadcastReceiver

2、 动态注册   静态注册

二、判断题

1、对   2、对   3、错   4、对   5、错

三、选择题

A、 BC   2、ABCD

四、简答题

1. 广播机制的实现过程

答:Android中的广播使用了观察者模式,即基于消息的发布/订阅事件的模式。广播发送者和接收者分别处于观察者模式中的消息发布和订阅两端。广播机制的实现过程具体如下:

1. 广播接收者通过Binder机制在AMS(Activity Manager Service)中进行注册。

2. 广播发送者通过Binder机制向AMS发送广播。

3. AMS查找符合相应条件(IntentFilter/Permission)的广播接收者,将广播发送到相应的消息循环队列中。

4. 执行消息循环时获取到发送的广播,然后回调广播接收者中的onReceive()方法并在该方法中进行相关处理。

2. 简述有序广播和无序广播的区别

答:广播分为有序广播和无序广播,他们有以下几点的区别。

(1) 发送广播时,使用的方法不同。有序广播使用sendOrderedBroadcast()发送广播,而无序广播使用sendBroadcast()方法发送广播。

(2) 广播接收者执行的顺序

  1. 有序广播的接收者是顺序执行的。

有序广播按照广播接收者声明的优先级别被依次接收。当在高级别的广播接收者逻辑执行完毕之后,广播才会继续传递。当优先级相同时,先注册的广播接受者优先执行。

  1. 无序广播是完全异步执行的。

当发送无序广播时,所有监听这个广播的广播接收者都会接收到此广播消息,但接收和执行的顺序不确定。

(3)拦截广播

有序广播的接收者可拦截广播。如果优先级较高的广播接收者将广播终止,那么广播将不再向后传递。而无序广播则不能被拦截。

(4)效率

有序广播的效率比无序广播低。


http://www.kler.cn/a/416827.html

相关文章:

  • Windows加固脚本
  • 使用nginx请求转发时前端报跨域问题解决
  • java面向对象知识点: 封装,构造,重载
  • ubuntu安装chrome无法打开问题
  • 学习日记_20241126_聚类方法(自组织映射Self-Organizing Maps, SOM)
  • 肿瘤微环境中单细胞的泛癌分类
  • 【力扣热题100】[Java版] 刷题笔记-3. 无重复字符的最长子串
  • 虚拟机VMware安装OpenWrt镜像
  • 零基础学安全--Burp Suite(3)decodor comparer logger模块使用
  • 当新能源遇见低空经济:无人机在光伏领域的创新应用
  • 【网络协议栈】网络层(中)公有IP与私有IP、网络层中的路由(内附手画分析图 简单易懂)
  • 【conda】全面解析 Conda 配置文件:从完整示例到最佳实践
  • Python酷库之旅-第三方库Pandas(250)
  • 架构-微服务-服务网关
  • spring boot2.7集成OpenFeign 3.1.7
  • 服务器配环境
  • OD E卷 - 实现【正则表达式替换】
  • 使用uni-app进行开发前准备
  • [2024年3月10日]第15届蓝桥杯青少组stema选拔赛C++中高级(第二子卷、编程题(5))
  • vue中如何获取public路径
  • Ubuntu 关机命令
  • 【LeetCode】每日一题 2024_11_30 判断是否可以赢得数字游戏(模拟)
  • NLP中的主题模型:LDA(Latent Dirichlet Allocation, 潜在狄利克雷分配)
  • vulnhub靶机之Fawkes
  • C#结合.NET框架快速构建和部署AI应用
  • 【超全总结】深度学习分割模型的损失函数类别及应用场景