android里面onKeyDown的用法,难道不用类的吗

查了一下音量键的监听,发现了onKeyDown方法,但是为什么这个方法不用实例或者类来调用的呢?... 查了一下音量键的监听,发现了onKeyDown方法,但是为什么这个方法不用实例或者类来调用的呢? 展开
 我来答
QQMSD8
推荐于2016-10-09 · 知道合伙人软件行家
QQMSD8
知道合伙人软件行家
采纳数:6788 获赞数:13239
没有做不到,只有想不到,帮助别人的同时也是对自己的提升

向TA提问 私信TA
展开全部

在Android系统中,键盘按键事件keyDown是由WindowManagerService服务来管理的,然后再以消息的形式来分发给应用程序处理,不过和普通消息不一样,它是由硬件中断触发的;在系统启动的时候,SystemServer会启动窗口管理服务WindowManagerService,WindowManagerService在启动的时候就会通过系统输入管理器InputManager来总负责监控键盘消息。这些键盘消息一般都是分发给当前激活的Activity窗口来处理的,因此,当前激活的Activity窗口在创建的时候,会到WindowManagerService中去注册一个接收键盘消息的通道,表明它要处理键盘消息,而当InputManager监控到有键盘消息时,就会分给给它处理。当当前激活的Activity窗口不再处于激活状态时,它也会到WindowManagerService中去反注册之前的键盘消息接收通道,这样,InputManager就不会再把键盘消息分发给它来处理。


1、  onKeyDown事件 

Android系统最先触发按键上绑定的事件监听器,然后才触发该组件提供的事件回调方法,最后传播到该组件所在的Activity


2、Touch 事件传递

android系统中的每个View的子类都具有下面三个和TouchEvent处理密切相关的方法:

  1. public booleandispatchTouchEvent(MotionEventev)这个方法用来分发

  2. TouchEventpublic booleanonInterceptTouchEvent(MotionEvent ev) 这个方法用来拦截TouchEvent

  3. public booleanonTouchEvent(MotionEventev)这个方法用来处理TouchEvent

当有ACTION_DOWN事件时,处理流程为:


再回过头来看onKeyDown事件,其实也和touch事件的处理流程一样。

Activity获取到keydown事件 ------>分发给子View MyButton ------> 调用子View 的监听器方法------> 调用子 View 的onKeyDown方法 ------> 调用Activity的onKeyDown方法

安琪拉卑鄙
推荐于2016-01-05 · TA获得超过614个赞
知道小有建树答主
回答量:751
采纳率:50%
帮助的人:598万
展开全部
自带方法啊。Android封装好了的,可以理解为Integer.parseInt()这种啊。
Android的事件,KeyEvent,TrackBallEvent,TouchEvent什么的,简单开发时,只要继承就行了。
更多追问追答
追问
但是integer也是类啊!
追答
Android封装好了的

Android封装好了的

Android封装好了的

Android封装好了的

Android封装好了的

Android封装好了的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式