我正在构建一个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