背景:在机顶盒中通过遥控器操作,与传统手机交互方式不同。手机点击是发送两个TouchEvent(Down和Up),机顶盒是发送KeyEvent。所产生的效果看似相同,其实是两种不同的机制。
先看两段代码
1.目录android.view.View
调度按键事件
public boolean dispatchKeyEvent(KeyEvent event) {
if (mInputEventConsistencyVerifier != null) {
mInputEventConsistencyVerifier.onKeyEvent(event, 0);
}
// Give any attached key listener a first crack at the event.
// noinspection SimplifiableIfStatement
ListenerInfo li = mListenerInfo;
if (li != null && li.mOnKeyListener != null
&& (mViewFlags & ENABLED_MASK) == ENABLED
&& li.mOnKeyListener.onKey(this, event.getKeyCode(), event)) {
return true;
}
if (event.dispatch(this,
mAttachInfo != null ? mAttachInfo.mKeyDispatchState : null,
this)) {
ret