将FutureTask转换为ScheduledFuture

时间:2017-02-01 03:57:37

标签: java android multithreading

对于我的Android应用程序,我计划实现自己的机制来安排runnables,例如

public ScheduledFuture<?> runAfter(Runnable r, long millis) { 
  // Runs r after millis milliseconds. 
}

我遇到的问题是创建一个将返回ScheduledFuture的实例。有没有办法我可以轻松创建ScheduledFuture的实例,这将允许跟踪传递的runnable。

我知道的唯一方法是实现我自己的ScheduledFuture接口并为提交的runnable创建一个包装器,它将为未来的实现设置适当的值,但我正在寻找一种简单的方法来创建给定runnable的ScheduledFuture实例。

1 个答案:

答案 0 :(得分:0)

您可以使用ScheduledExecutorService,如下所示

public ScheduledFuture<?> runAfter(Runnable r, long millis) { 
   // Runs r after millis milliseconds.
   ScheduledExecutorService executor;
   return executor.schedule(r, millis, TimeUnit.MILLISECONDS);
}