android 按键速度控制

在android Tv 上的开发时,常常需要对按键的响应速度做控制,否则容易出现焦点乱跳的情况或者出现来不及加载的情况。
这里给出一种方案:
在Activity或者view的dispatchKeyEvent做了处理。

public boolean dispatchKeyEvent(KeyEvent event) {
        if(event.getAction() == 0) {
            long nowTime = SystemClock.elapsedRealtime();
            this.mTimeDelay = nowTime - this.mTimeLast;
            this.mTimeLast = nowTime;
            if(this.mTimeSpace <= 80L && this.mTimeDelay <= 80L) {
                this.mTimeSpace += this.mTimeDelay;
                return true;
            }

            this.mTimeSpace = 0L;
        }

        return super.dispatchKeyEvent(event);
    }

这里的时间间隔是80ms,在两次时间间隔小于80ms时,将按键事件屏蔽,同时长按产生的累加时间间隔要考虑。

还有一种方案是发送延迟handler消息。这个后面再补上

你可能感兴趣的:(android 按键速度控制)