根据5.1视图类的源.似乎 dispatchKeyEvent() 是系统调用的第一个方法.重载它会阻止任何和所有的关键事件被调用,除非调用基本版本.
dispatchKeyEvent()的第一个动作是尝试将事件传递给 onKeyListener 如果有的话.这是在调用 onKey()时.如果 onKey()实现返回 true ,那么 dispatchKeyEvent()将返回那里,其他事件不会被调用.
如果没有 onKeyListener 或 onKeyListener 的 onKey()方法返回 false , dispatchKeyEvent()然后调用 KeyEvent 的 dispatch() 方法.然后,它们将调用 KeyEvent中的所有方法.回调 界面.这包括 onKeyDown() 和 onKeyUp() .