计划任务保持应用程序活着

时间:2013-09-12 22:56:44

标签: java multithreading

我有一个使用javafx制作的应用程序,它使用scheduledFuture = scheduledExecutorService.scheduleAtFixedRate(runnable, initialDelay, 24*60*60*1000, TimeUnit.Milliseconds)

计划每天运行的runnable

即使我使用scheduledFuture.cancel(true)取消此任务,我的应用程序也会在用户关闭后在后台保持活动状态。

我很确定这种调度是保持应用程序活着的唯一因素。如果我没有安排它,应用程序就会关闭。

1 个答案:

答案 0 :(得分:2)

scheduledExecutorService上调用shutdown(),允许程序正常关闭。

scheduledExecutorService.shutdown();

根据javadocs,

  

启动有序关闭,其中执行先前提交的任务

调用cancel(true)只是取消任务,让执行程序服务保持活动状态,shutdown()也会终止执行程序服务,允许程序退出。