0

1 秒あたりに処理されるキー イベントの数を制限する必要があります。アイデアは、私のアプリではユーザーがキーボードを使用できるためです。たとえば、ユーザーが右のナビゲーション ボタンを押したままにするとします。アプリが計算ループでスタックする可能性があるため、すべてのイベントを処理したくありません。そして、強制終了、待機ダイアログが表示されます。

私は毎秒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 に答える