我有一个使用javafx制作的应用程序,它使用scheduledFuture = scheduledExecutorService.scheduleAtFixedRate(runnable, initialDelay, 24*60*60*1000, TimeUnit.Milliseconds)
即使我使用scheduledFuture.cancel(true)
取消此任务,我的应用程序也会在用户关闭后在后台保持活动状态。
我很确定这种调度是保持应用程序活着的唯一因素。如果我没有安排它,应用程序就会关闭。
答案 0 :(得分:2)
在scheduledExecutorService
上调用shutdown()
,允许程序正常关闭。
scheduledExecutorService.shutdown();
根据javadocs,
启动有序关闭,其中执行先前提交的任务
调用cancel(true)
只是取消任务,让执行程序服务保持活动状态,shutdown()
也会终止执行程序服务,允许程序退出。