在发生事件时,我想运行一个任务/可运行任务,但将其执行时间延迟2秒。
在这2秒钟内,如果发生相同事件,我想删除上一个任务并重新发布以运行-再次延迟2秒钟。
一个示例场景是后台编译。保存文件后,我等待2秒钟,然后开始编译该类和其他相关类。我不想一直这样做-尤其是当某些编辑器自动保存文件时,例如IntelliJ IDEA。
因此,如何在Java中删除/发布延迟的可运行对象,例如Android的处理程序(remove / postDelayed)?
最佳答案
您可以使用Executors.newScheduledThreadPool
来安排任务,
您可以按照以下post的答案进行操作:
BlockingQueue<Runnable> queue = threadPool.getQueue();
为了获得排队的可运行物品。