ScheduledExecutorService 或 ScheduledThreadPoolExecutor

我正在构建一个Android应用程序,该应用程序必须定期在服务中执行某些操作。我发现使用 和 比 .ScheduledThreadPoolExecutorScheduledExecutorServiceTimer

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

更新

我刚刚找到了这篇文章这篇文章解释了实现重复周期性任务的几种方法之间的区别。在我的情况下,是更合适的。ScheduledThreadPoolExecutorAlarmManager


答案 1

ScheduledExecutorService是一个接口(合约),并实现该接口。ScheduledThreadPoolExecutor

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

例如

ScheduledExecutorService scheduler =
 Executors.newScheduledThreadPool(1);

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

查看 Andriod 的 Schedule Executor Service Usage


答案 2

这是一样的,是一个实现ScheduledThreadPoolExecutorScheduledExecutorService