0

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

我想每秒处理 2,3 个事件,而其他只是忽略。所以我可以为应用程序和计算线程添加一点冷却时间。

有可能吗?我想我必须在我的关键监听器中使用一些计时器或简单的睡眠功能,但我想不出正确的方法来做到这一点。

任何的想法?

4

1 回答 1

0

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

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

// in the key event handling function:
if(System.currentTimeMillis() - mPreviousKeyEventTime < 300) return;
mPreviousKeyEventTime = System.currentTimeMillis();

300 是以毫秒为单位的时间 - 根据您的需要更改它。

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

于 2012-12-21T08:27:21.703 回答