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