一些按键(Media Key Back Key)在系统分发时,做了特殊处理: 当按下时,发送Message去调用KeyEvent.changeTimeRepeat
这样长按时,会发多次KeyEvent.ACTION_DOWN,
第一次event.getRepeatCount()返回0; 第二次event.getRepeatCount()返回1; ……
避免长按多次调用onKeyDown之类的处理,常添加repeatCount == 0判断
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
return true;
}
return super.onKeyDown(keyCode, event);
当然,上述方法也可以防止长按连续不断的发送同一个事件导致的多次处理。