什麼是使用ScheduledExecutorService
/Timer
/Handler
的利弊?據我所知,在Android中代替Timer
它需要使用Handler
,但ScheduledExecutorService
呢?ScheduledExecutorService的VS定時器VS處理器
據我瞭解Handler
和ScheduledExecutorService
僅用於相對時間,對不對?
什麼是使用ScheduledExecutorService
/Timer
/Handler
的利弊?據我所知,在Android中代替Timer
它需要使用Handler
,但ScheduledExecutorService
呢?ScheduledExecutorService的VS定時器VS處理器
據我瞭解Handler
和ScheduledExecutorService
僅用於相對時間,對不對?
這三個允許您在不同的(如非主)線程執行任務。 Handler允許您使用消息傳遞Actor模式在線程之間進行安全通信。它不允許你做時間/延遲/等。
一個ScheduledExecutorService是一個非常通用的線程管理解決方案。你用一定的數字初始化它給工作線程,然後給它工作單元。您可以延遲/重複工作單位。
Timer類有一個簡單的API,類似於一次性單線程使用的ScheduledExecutorService。官方API建議不要使用這個類,而是推出自己的ScheduledExecutor。
你可以使用處理器#postDelayed(Runnable接口,間隔) – siliconeagle
http://stackoverflow.com/questions/2333680/android-schedule-action – assylias
Timer和ScheduledExecutor之間的主要區別:後者可以使用多個線程(通過線程池),並消除一個任務延誤下一個任務的風險之一:http://stackoverflow.com/questions/409932/java-timer-vs-executorservice – assylias
這顯示出良好澄清http://stackoverflow.com/a/6558821/1016544 –