1

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

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

我很确定这种调度是保持应用程序存活的唯一方法。如果我不安排它,应用程序会正常关闭。

4

1 回答 1

2

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

scheduledExecutorService.shutdown();

根据javadocs,

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

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

于 2013-09-12T23:24:09.247 回答