ScheduledThreadPoolExecutor

ScheduledThreadPoolExecutor

我正在构建一个Android应用程序,该应用程序必须定期在Service中执行某些操作。而且我发现使用ScheduledThreadPoolExecutorScheduledExecutorService优于Timer

谁能解释ScheduledExecutorServiceScheduledThreadPoolExecutor之间的区别,哪一种更适合Android?

更新

我刚刚发现this articlethis post解释了实现重复性周期性任务的几种方法之间的区别。就我而言,ScheduledThreadPoolExecutorAlarmManager更合适。

最佳答案

ScheduledExecutorService是一个接口(interface)(契约(Contract)),并且ScheduledThreadPoolExecutor实现该接口(interface)。

由于无法直接实例化接口(interface),因此必须通过直接实例化ScheduledThreadPoolExecutor或通过工厂方法(例如java.util.concurrent.Executors)来返回ScheduledThreadPoolExecutor实例来使用实现。

例如

ScheduledExecutorService scheduler =
 Executors.newScheduledThreadPool(1);

scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS); //returns a ScheduledFuture

看看Scheduled Executor Service Usage for Andriod

10-06 07:27