android里面onKeyDown的用法,难道不用类的吗
推荐于2016-10-09 · 知道合伙人软件行家
在Android系统中,键盘按键事件keyDown是由WindowManagerService服务来管理的,然后再以消息的形式来分发给应用程序处理,不过和普通消息不一样,它是由硬件中断触发的;在系统启动的时候,SystemServer会启动窗口管理服务WindowManagerService,WindowManagerService在启动的时候就会通过系统输入管理器InputManager来总负责监控键盘消息。这些键盘消息一般都是分发给当前激活的Activity窗口来处理的,因此,当前激活的Activity窗口在创建的时候,会到WindowManagerService中去注册一个接收键盘消息的通道,表明它要处理键盘消息,而当InputManager监控到有键盘消息时,就会分给给它处理。当当前激活的Activity窗口不再处于激活状态时,它也会到WindowManagerService中去反注册之前的键盘消息接收通道,这样,InputManager就不会再把键盘消息分发给它来处理。
1、 onKeyDown事件
Android系统最先触发按键上绑定的事件监听器,然后才触发该组件提供的事件回调方法,最后传播到该组件所在的Activity
2、Touch 事件传递
android系统中的每个View的子类都具有下面三个和TouchEvent处理密切相关的方法:
public booleandispatchTouchEvent(MotionEventev)这个方法用来分发
TouchEventpublic booleanonInterceptTouchEvent(MotionEvent ev) 这个方法用来拦截TouchEvent
public booleanonTouchEvent(MotionEventev)这个方法用来处理TouchEvent
当有ACTION_DOWN事件时,处理流程为:
再回过头来看onKeyDown事件,其实也和touch事件的处理流程一样。
Activity获取到keydown事件 ------>分发给子View MyButton ------> 调用子View 的监听器方法------> 调用子 View 的onKeyDown方法 ------> 调用Activity的onKeyDown方法
Android的事件,KeyEvent,TrackBallEvent,TouchEvent什么的,简单开发时,只要继承就行了。
但是integer也是类啊!
Android封装好了的
Android封装好了的
Android封装好了的
Android封装好了的
Android封装好了的
Android封装好了的