ちょっと私は現在、いくつかのコードが200ミリ秒ごとに実行されるアプリを設計しています。これに使用するスレッドは次のようになります (簡略化):
final Handler handler = new Handler();
Runnable runnable = new Runnable()
{ public void run()
{
handler.postDelayed(this, 200);
switch (status){
case 1: check(1);p2.setBackgroundColor(0x00000000); p1.setBackgroundColor(0xDDCC0000); status = 2; break;
case 2: check(2);p1.setBackgroundColor(0x00000000); p2.setBackgroundColor(0xAAAA0000); status = 1; break;
}
}
}; runnable.run();
check() には、いくつかの非 UI コード行が含まれています。
問題は、キューが完全に実行されたときに postDelayed-200-ms が開始され、最初ではなく、常にシステムがコマンドスタックとスタックを常に実行する必要があるため、これらは実際には ~210-230ms ( CPU 負荷に応じて)
次に、スレッドの先頭でシステム日付を取得して 200 ミリ秒を追加しようとしましたが、これにより他の「より重い」エラーが発生します。
200 ミリ秒以上の遅延に問題はありません。安定して動作させたいだけです。
私の問題を理解していただき、アドバイスをいただければ幸いです。
EDIT:ハンドラーが許容範囲内で実行されることを知っています(200ミリ秒で4ミリ秒の遅延)。問題は、私が呼び出しているメソッドです。新しい質問を開きます