カウント ダウン タイマーの GrepCodeは、Handler を使用していることを示しています。ハンドラーを使用する特定の理由はありますか? ハンドラーは通常、スレッドを使用してユーザーと対話するときに使用されるためです。しかし、ここではカウントダウン タイマーで確認できるスレッドはありません。また、カウントダウンタイマーは、UI スレッド自体で使用すると機能します。
3 に答える
ハンドラーは通常、スレッドを使用してユーザーとやり取りするときに使用されるためです
真実。ただし、「通常」 != 「常に」。
には、 や など、Handler
タイミングの目的で便利なメソッドがpostDelayed()
ありsendMessageDelayed()
、それCountDownTimer
を利用しています。それらを自分で使用することもできます。Timer
お気づきのように、別のスレッドが必要ないため、それらは素晴らしく軽量TimerTask
です。
また、カウントダウンタイマーは、UI スレッド自体で使用すると機能します。
Looper
使用するには付属の糸が必要Handler
です。CountDownTimer
は通常、メイン アプリケーション スレッドで使用されます。そうでない場合は、別のHandlerThread
.
スレッド間の通信だけでなく、handler を使用できます。ハンドラーは、定義された時間 (postDelayed 関数) の後にいくつかのコードを実行する機能でした。Android OS Handler では、時間間隔後にコードを実行する必要がある場合に備えて、(Java タイマーの代わりに) 使用するツールが推奨されます。カウント ダウン タイマーでは、ハンドラーを使用して 1 秒間隔でコードをチューニングします。