根据5.1视图类的源.似乎 dispatchKeyEvent() 是系统调用的第一个方法.重载它会阻止任何和所有的关键事件被调用,除非调用基本版本.
dispatchKeyEvent()的第一个动作是尝试将事件传递给 onKeyListener 如果有的话.这是在调用 onKey()时.如果 onKey()实现返回 true ,那么 dispatchKeyEvent()将返回那里,其他事件不会被调用.
如果没有 onKeyListener 或 onKeyListener 的 onKey()方法返回 false , dispatchKeyEvent()然后调用 KeyEvent 的 dispatch() 方法.然后,它们将调用 KeyEvent中的所有方法.回调 界面.这包括 onKeyDown() 和 onKeyUp() .
本文详细解析了KeyEvent分发机制中的dispatchKeyEvent()方法工作流程。该方法首先尝试将事件传递给onKeyListener,若存在且其onKey()方法返回true,则不再进行后续处理;反之则继续调用KeyEvent的dispatch()方法,进而触发onKeyDown()和onKeyUp()等回调。
527

被折叠的 条评论
为什么被折叠?



