问题 ScheduledExecutorService或ScheduledThreadPoolExecutor


我正在构建一个Android应用程序,它必须定期在服务中执行某些操作。我发现使用了 ScheduledThreadPoolExecutor 和 ScheduledExecutorService 比较好 Timer

任何人都可以解释之间的区别 ScheduledExecutorService 和 ScheduledThreadPoolExecutor 哪一个更适合Android?

更新

我刚发现 本文 和 这个帖子 解释实现重复周期性任务的几种方法之间的区别。就我而言, ScheduledThreadPoolExecutor 和 AlarmManager 更合适。


10695
2017-09-10 10:07


起源

您是否考虑过使用Handler? - Fildor
处理器 有各种方法来安排执行代码。 - Fildor


答案:


ScheduledExecutorService 是一个接口(合同)和 ScheduledThreadPoolExecutor 实现该接口。

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

例如

ScheduledExecutorService scheduler =
 Executors.newScheduledThreadPool(1);

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

看一下 Andriod的预定执行者服务使用情况


6
2017-09-10 10:48





这是一样的, ScheduledThreadPoolExecutor 是一个实现 ScheduledExecutorService


3
2017-09-10 10:15





使用Executors创建ScheduledThreadPoolExecutor

你也可以看一下这个

http://tutorials.jenkov.com/java-util-concurrent/scheduledexecutorservice.html

如果你想定期使用它,你应该使用这种方法

scheduleAtFixedRate(Runnable,long initialDelay,long period,TimeUnit timeunit)


2
2017-09-10 10:16