在发生事件时,我想运行一个任务/可运行任务,但将其执行时间延迟2秒。

在这2秒钟内,如果发生相同事件,我想删除上一个任务并重新发布以运行-再次延迟2秒钟。

一个示例场景是后台编译。保存文件后,我等待2秒钟,然后开始编译该类和其他相关类。我不想一直这样做-尤其是当某些编辑器自动保存文件时,例如IntelliJ IDEA。

因此,如何在Java中删除/发布延迟的可运行对象,例如Android的处理程序(remove / postDelayed)?

最佳答案

您可以使用Executors.newScheduledThreadPool来安排任务,
您可以按照以下post的答案进行操作:

BlockingQueue<Runnable> queue = threadPool.getQueue();


为了获得排队的可运行物品。

07-27 19:19