按住一个物理按键不放,发现onKeyDown()发放不断地被触发,请问如何拦截按键的长按事件,即长按某个按键,让onKeyDown()只执行一次(我是在源码的作的开发),或者是系统处理按键长按的代码在哪儿?

解决方案 »

  1.   

    true false 会不。当执行第一次为false,然后判断为false就不执行,会不
      

  2.   

    你试试 开个线程,sleep一下再判断该键是否还是按下状态。
      

  3.   

    你参考这个就行
    /*
     * 屏蔽手机菜单键长按
     */
    @Override
    public boolean dispatchKeyEvent(KeyEvent event) {
    if (event.getRepeatCount() > 0
    && event.getKeyCode() == KeyEvent.KEYCODE_MENU) {
    return true;
    }
    return super.dispatchKeyEvent(event);
    }
      

  4.   

    规避了这个问题了,现在的做法是驱动层一次上报两个键值,一个down ,一个up,再在上层拦截这两个按键的up消息,来模拟一个键的down和up