我正在构建一个Android应用程序,它必须定期在服务中执行某些操作。我发现使用了 ScheduledThreadPoolExecutor 和 ScheduledExecutorService 比较好 Timer。
任何人都可以解释之间的区别 ScheduledExecutorService 和 ScheduledThreadPoolExecutor 哪一个更适合Android?
更新
我刚发现 本文 和 这个帖子 解释实现重复周期性任务的几种方法之间的区别。就我而言, ScheduledThreadPoolExecutor 和 AlarmManager 更合适。
ScheduledExecutorService 是一个接口(合同)和 ScheduledThreadPoolExecutor 实现该接口。
由于无法直接实例化接口,因此必须通过实例化来实现实现 ScheduledThreadPoolExecutor 直接或通过工厂方法如 java.util.concurrent.Executors 返回一个实例 ScheduledThreadPoolExecutor。
例如
ScheduledExecutorService scheduler =
Executors.newScheduledThreadPool(1);
scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS); //returns a ScheduledFuture
看一下 Andriod的预定执行者服务使用情况
这是一样的, ScheduledThreadPoolExecutor 是一个实现 ScheduledExecutorService