如何中断IMAP的IDLE?

我正在使用连接到我的IMAP服务器的Javamail API。 使用javax.mail.Folder.idle() 方法,一切都运行良好。 当有新邮件进入时,我的监听器会被调用。但问题是永远是空闲块,我该如何打断它? 如何在不杀死Java程序的情况下实际停止监听?

我试过在idle’d线程上调用Thread.interrupt()。 什么都没发生。 我的想法已经不多了。

对该文件夹(来自另一个线程)执行任何操作将导致idle()方法立即返回。 因此,如果您想强行中断它,只需从新线程调用close()

如果您正确阅读文档并阅读源代码,您将意识到必须创建一个用于调用.idle()的新线程。

将该线程分配给变量,并且只要您想在该线程上调用interrupt() ,或者只是忽略通知!

如果你需要再次进入idle() ,只需重新运行该线程!

我创造了类似的东西,所以你可能想看看它。

https://github.com/mofirouz/JavaPushMail/blob/master/src/main/java/com/mofirouz/javapushmail/JavaPushMailAccount.java

祝好运