项目中需要监听Enter键的点击,但是部分设备直接监听onKeyDown没有效果。
于是直接用dispatchKeyEvent去监听,但是发现dispatchKeyEvent在一次物理键点击的情况下会调用两次。
一次是按下的时候,keyEvent的Action为ACTION_DOWN,另一次就是ACTION_UP了
所以只要加个判断,去除keyEvent的action为ACTION_UP的情况
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER && event.getAction() != KeyEvent.ACTION_UP) {
}
return super.dispatchKeyEvent(event);
}