android监听器作用,android - 监听器和接收器(Android)有什么区别?
例如,我需要一个BroadcastReceiver来获取这些事件:
重新启动或关机
屏幕开或关
电池状态(电压,接通电源,温度)
物理按钮按下(相机,媒体等)
但是我需要监听器来获取以下事件:
用于传感器事件(加速度,磁场,方向,接近度,温度,光照水平等)的EventListener
用于位置事件的LocationListener(网络位置,GPS)
似乎接收方和监听方都存在,以便我可以接收事件。除了明显的语义差异之外,两者之间还有什么区别?我可以在其中一项上做其他事情,而不能在另一项上做,尤其是在屏幕关闭时我可以占用并运行多少CPU方面?为什么出于接收事件的目的有两种完全不同的构造?
最佳答案
两者之间的差异如此之多,它们对某些事物的回应是唯一的相似之处之一。
差异:
BroadcastReceivers接收Intent,而Listener基本上可以做任何事情,因为它没有定义的目的,所以只是一个命名约定。例如,在开发人员网站上搜索"BroadcastReceiver",然后搜索"Listener"
BroadcastReceivers刚收到一个非直接的Intent Broadcast,监听器被显式调用。
BroadcastReceiver是它自己定义的类,因为它具有明确的目的(接收Intent),而监听器可以是任何东西-它们通常是interface,并且提供它们是为了使回调可以从一个类到另一个类进行。
BroadcastReceivers通常用于全局的系统范围的事件,特定事件的监听器(即,位置传感器除非有某些东西(例如要向其发布的监听器),否则不应该每秒发送一次位置更新。 -这很重要,它影响到一切,因此应广播给所有感兴趣的接收者。
事件BroadcastReceiver接收的事件通常是非连续事件(一次触发),而监听器(取决于它们的工作)可以将用于持续更新(连续)。 如果在 list 中声明了
BroadcastReceivers,则系统可以将其实例化。仅动态创建监听器(因此通过代码)。
CPU/功耗的使用取决于两者的实现,尤其是因为如上所述,监听器可以是或。
Are there things I can do in one but not the other, especially in regards to things like how much CPU I can take and running while the screen is off?
BroadcastReceivers仅具有10 seconds of guaranteed execution time。监听器没有特定的用途,因此没有此限制。
您肯定无法从BroadcastReceiver做的事情:
In particular, you may not show a dialog or bind to a service from
within a BroadcastReceiver.
可能还有更多-这就是我想出的。
android监听器作用,android - 监听器和接收器(Android)有什么区别?相关推荐
- Android应用程序注冊广播接收器(registerReceiver)的过程分析
前面我们介绍了Android系统的广播机制,从本质来说,它是一种消息订阅/公布机制,因此,使用这样的消息驱动模型的第一步便是订阅消息:而对Android应用程序来说,订阅消息事实上就是注冊广播接收器, ...
- Android JNI作用及其详解
Android JNI作用及其详解 Java Native Interface (JNI)标准是Java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI 是本地编程接口,它使得在 J ...
- Android适配器作用
Android Adapter适配器 Adapter的作用就是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面时,都会调用Adapter的getView方法返回一个View. Andr ...
- not found for signing config ‘debug‘Android中meta-data的作用xmlns:tools=“http://schemas.android.com/
目录 not found for signing config 'debug' Android中meta-data的作用 xmlns:tools="http://schemas.androi ...
- android intent-filter作用,Android--Intent和IntentFilter详解
Intent用于启动Activity, Service, 以及BroadcastReceiver三种组件, 同时还是组件之间通信的重要媒介. 使用Intent启动组件的优势 1, Intent为组件的 ...
- android时间接收器,android – 在飞机模式关闭/打开后,广播接收器在onReceive()中接收的时间太长...
我创建了一个简单的广播接收器,它工作得很好,除非我打开/关闭空中飞机模式,使用onReceive方法接收广播消息需要将近2分钟.另一件事是,如果我们启动应用程序然后如果我更改Air plane模式(开 ...
- Android开发之路--(2)--Android四大组件
版权声明:本文为博主原创文章,转载请标明出处. https://blog.csdn.net/lyhhj/article/details/47214197 说实话我对Android的理解还是比较 ...
- 【Android开发日记】第一个任务Android Service!Service靴+重力感应器+弹出窗口+保持执行...
前言: 近期在写一个小程序,需求是手机摇一摇就弹窗出来.第一次使用了Service,学习了两天,实现了Service弹窗,开机启动,Service启动和销毁,Service保持一直执行. 满足了自己的 ...
- Android应用开发基础 余永佳,Android应用开发基础(基于Android4.2、任务驱动式)教学课件作者余永佳赵佩华习题课件.doc...
任务一 Android开发环境的搭建 第一部分 知识回顾与思考 1.Android的四层架构分别包括哪几层?分别起到什么作用? ?答:Linux内核层(Linux Kernel):基于Linux内核, ...
- 《Android移动应用基础教程》(Android Studio)(第二版)黑马程序员 课后习题答案
<Android移动应用基础教程>(Android Studio)(第二版)黑马程序员 课后习题答案 目录 第1章 Android基础入门 第2章 Android常见界面布局 第3章 An ...
最新文章
- 【NIO】IO多路复用
- MFC/Windows API 使用过的函数(持续更新)
- hdu 5730 Shell Necklace——多项式求逆+拆系数FFT
- 使用XMLConfiguration解析xml,properties等相应信息
- 记录日志的测试软件_教程:测试期间的日志记录
- 计算机知识小技巧,计算机知识---基本操作小技巧.pptx
- 【Elasticsearch】es一个奇怪的问题 is_write_index fasle的时候还在写入 索引滚动无效
- RubyGem version error: rack(1.0.0 runtime)
- opencv 最大内接矩形_OpenCV之二值图像分析 – 寻找最大内接圆
- 管家婆婆分销ERP V3 打印报错
- 082-我最爱的周杰伦九张专辑
- 漫画 | 阿姨,我不想努力了~
- 头像设计,如何用PS制作个性头像
- 地震学儒略日转化成常规日期(python函数)
- Mongodb备份和还原
- 小学是否有计算机专业,小学计算机教学计划
- R语言数据读取以及数据保存
- LeetCode hot-100 简单and中等难度,41-50.
- 国内首部区块链行业纪录片开播
- 解决Sublime出现中文乱码的情况
热门文章
- springboot mybatis-plus 配置 yml 、druid 配置 yml 、mybatis-plus 代码生成
- Java 深copy 浅copy 引用copy
- zookeeper命令
- 删不干净_“我劝你别删前任微信”
- css3动画animation,transition
- 继承(继承父类,super)
- [转]Oh My Zsh,安装,主题配置
- Servlet跳转到JSP页面后的路径问题相关解释
- win7/8/10安装过程中将动态磁盘转为basic
- mysql中char与varchar的区别分析