Javamail:为IMAPFolder发出idle()的正确方法

时间:2013-02-22 11:04:54

标签: javamail

我为IMAPFolder设置了MessageCountListener。为了不断获得更新,我必须执行以下操作,这对于我的应用程序性能明智而言是一个杀手。它会冻结GUI,因为它正在为每个文件夹运行。

while (true) {
     try {
          if (folder != null && folder.isOpen()) {
              folder.idle();
          } else {
              getSyncListenersAttachedFolders().remove(syncFolder.getFolderID());
          }
     } catch (Exception ex) {
          errorLOG.error("IDLE command issue exception.");
          getSyncListenersAttachedFolders().remove(syncFolder.getFolderID());
     }
}

有没有更好的方法来发出不会在while(true)条件下运行的空闲命令。 期待快速反应。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您需要在自己的线程中运行它。