一些按键(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);