Android 定义每秒处理的关键事件数

Android 定义每秒处理的关键事件数,android,keyboard,keylistener,Android,Keyboard,Keylistener,我需要限制每秒处理的关键事件数。 这个想法是,因为在我的应用程序中,用户可以使用键盘。 例如,当用户按住右导航按钮时。 我不想处理每个事件,因为我的应用程序可能会在计算循环中受阻。 然后强制关闭,等待对话框出现 我希望每秒处理2,3个事件,而其他事件则被忽略。 因此,我可以为应用程序和计算线程添加一点冷却时间 有可能吗? 我想我必须在我的按键侦听器中使用一些定时器或简单的睡眠功能,但我想不出正确的方法 有什么想法吗?一个简单的解决方案是在收到关键事件时进行时间比较: // a variable

我需要限制每秒处理的关键事件数。 这个想法是,因为在我的应用程序中,用户可以使用键盘。 例如,当用户按住右导航按钮时。 我不想处理每个事件,因为我的应用程序可能会在计算循环中受阻。 然后强制关闭,等待对话框出现

我希望每秒处理2,3个事件,而其他事件则被忽略。 因此,我可以为应用程序和计算线程添加一点冷却时间

有可能吗? 我想我必须在我的按键侦听器中使用一些定时器或简单的睡眠功能,但我想不出正确的方法


有什么想法吗?

一个简单的解决方案是在收到关键事件时进行时间比较:

// a variable in your class:
private long mPreviousKeyEventTime = 0;

// in the key event handling function:
if(System.currentTimeMillis() - mPreviousKeyEventTime < 300) return;
mPreviousKeyEventTime = System.currentTimeMillis();
//类中的变量:
private long MPPreviousKeyEventTime=0;
//在关键事件处理功能中:
if(System.currentTimeMillis()-mPreviousKeyEventTime<300)返回;
mPreviousKeyEventTime=System.currentTimeMillis();
300是以毫秒为单位的时间-更改它以满足您的需要

编辑:如果键盘也用于打字,则仅在导航时进行这些限制