2012-11-09 83 views
11

什麼是使用ScheduledExecutorService/Timer/Handler的利弊?據我所知,在Android中代替Timer它需要使用Handler,但ScheduledExecutorService呢?ScheduledExecutorService的VS定時器VS處理器

據我瞭解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

這三個允許您在不同的(如非主)線程執行任務。 Handler允許您使用消息傳遞Actor模式在線程之間進行安全通信。它不允許你做時間/延遲/等。

一個ScheduledExecutorService是一個非常通用的線程管理解決方案。你用一定的數字初始化它給工作線程,然後給它工作單元。您可以延遲/重複工作單位。

Timer類有一個簡單的API,類似於一次性單線程使用的ScheduledExecutorService。官方API建議不要使用這個類,而是推出自己的ScheduledExecutor。

+2

你可以使用處理器#postDelayed(Runnable接口,間隔) – siliconeagle