Java 计划任务使应用程序保持活动状态
我有一个用javafx制作的应用程序,它使用Java 计划任务使应用程序保持活动状态,java,multithreading,Java,Multithreading,我有一个用javafx制作的应用程序,它使用scheduledFuture=scheduledExecutorService.scheduleAtFixedRate(runnable,initialDelay,24*60*60*1000,TimeUnit.ms)安排一个runnable每天运行 即使我使用scheduledFuture.cancel(true)取消此任务,我的应用程序在用户关闭后仍在后台保持活动状态 我敢肯定,这种调度是使应用程序保持活动状态的唯一方法。如果我没有安排它,应用程序
scheduledFuture=scheduledExecutorService.scheduleAtFixedRate(runnable,initialDelay,24*60*60*1000,TimeUnit.ms)安排一个runnable每天运行
即使我使用scheduledFuture.cancel(true)
取消此任务,我的应用程序在用户关闭后仍在后台保持活动状态
我敢肯定,这种调度是使应用程序保持活动状态的唯一方法。如果我没有安排它,应用程序将正常关闭。调用scheduledExecutorService
允许程序正常关闭
scheduledExecutorService.shutdown();
根据javadocs
启动有序关机,在此过程中执行以前提交的任务
调用只会取消任务,使executor服务保持活动状态,shutdown()
也会杀死executor服务,从而允许程序退出。我自己没有使用过它,只是通过api进行了挖掘。尝试在ScheduledExecutorService上调用shutdown确实,这有效=)。谢谢我忘记了scheduledExcutorService本身,没想到它会让应用程序保持活力。。。那么,仅仅取消这些任务是不够的。它需要线程来管理其他任务。快速阅读api后,我想到了这一点。为了方便别人,我贴了一个答案。