2012-11-09 23 views
11

ScheduledExecutorService/Timer/Handlerの長所と短所は何ですか? Timerの代わりにAndroidで理解できるように、Handlerを使用する必要がありますが、ScheduledExecutorServiceはどうですか?ScheduledExecutorServiceとTimer v Handler

私がHandlerScheduledExecutorServiceを理解しているのは、相対的な時間だけです。

+2

http://stackoverflow.com/questions/2333680/android-schedule-action – assylias

+2

TimerとScheduledExecutorの主な違い:後者は(スレッドプール経由で)複数のスレッドを使用し、次のタスクを遅らせるリスクを排除できます一つは:http://stackoverflow.com/questions/409932/java-timer-vs-executorservice – assylias

+0

これは良い説明を表示します。http://stackoverflow.com/a/6558821/1016544 –

答えて

3

これら3つすべてを使用して、異なる(たとえばメイン以外の)スレッドでタスクを実行することができます。 Handlerでは、メッセージを渡すメッセージパターンを使用してスレッド間で安全に通信できます。それはあなたがタイミング/遅延/等をするのを許可しません。

ScheduledExecutorServiceは非常に一般的なスレッド管理ソリューションです。ワーカースレッドに特定の番号で初期化し、作業単位を与えます。仕事単位を遅らせたり、時間をかけたり、繰り返したりすることができます。

Timerクラスには、1回限りの1スレッド使用のScheduledExecutorServiceに似たシンプルなAPIがあります。公式のAPIでは、このクラスを使用せず、独自のScheduledExecutorをロールすることを提案しています。

+2

あなたはハンドラを使用することができます#postDelayed(Runnable、間隔) – siliconeagle