0
我有一個特定的任務必須定期執行,或者只是基於一個條件執行一次。我使用以下方法:根據條件定期或只運行一次ScheduledExecutorService
Runnable r = new Runnable() {
public void run()
{
//Execute task
}
};
final long freq = frequencyOfTask;
ScheduledExecutorService dataTimer = Executors.newScheduledThreadPool(1);
ScheduledFuture<?> dataTimerHandle = dataTimer.scheduleAtFixedRate(r, 0L, freq, TimeUnit.MILLISECONDS);
if(!isDynamic)
{
dataTimerHandle.cancel(false); //cancel the event in main thread while asking the already submitted tasks to complete.
}
任務運行正常的情況下isDynamic
是false
,即,其中任務沒有取消。但是,對於另一種情況(當執行需要一次)它根本不執行。
其他情況你在說什麼? – 2015-03-19 05:46:47
另一種情況是隻需執行一次執行 – abksrv 2015-03-19 05:48:19