java - AddFolderListener 在某些设备中有效,但在其他设备中无效

标签 java blackberry directory listener

我正在开发一个应用程序,它可以监听来自电子邮件帐户的消息并执行特定操作。为此,我使用这个:

public class EmailListener implements FolderListener {

public void registerEmailListener(boolean register) {
ServiceBook sb = ServiceBook.getSB();
ServiceRecord[] srs = sb.findRecordsByCid("CMIME");
if (srs != null) {
ServiceRecord sr;
ServiceConfiguration sc;
/* unregister all email listener  to avoid duplicate listeners */
desregisterAllEmailListeners(srs);
for (int i = srs.length - 1; i >= 0; --i) {
sr = srs[i];
try {
sc = new ServiceConfiguration(sr);
registerEmail(sc, register);

} catch (Exception e) {
e.printStackTrace();
}
}

}
}

private void registerEmail(ServiceConfiguration sc, boolean register) {
Session s = Session.getInstance(sc);
if (s != null) {
Folder[] folders = s.getStore().list();
for (int foldercnt = folders.length - 1; foldercnt >= 0; --foldercnt) {
Folder f = folders[foldercnt];
// If the folder doesn't have the service book for this email, we do not want to register it
if (f.getFullName().indexOf(sc.getEmailAddress()) >= 0) {
recurse(f, register);
}
}
} 
}
private void recurse(Folder f, boolean add) {
if (f.getType() == Folder.INBOX) {

f.removeFolderListener(this);
if (add) {
f.addFolderListener(this);
}
}
Folder[] farray = f.list();
for (int fcnt = farray.length - 1; fcnt >= 0; --fcnt) {
recurse(farray[fcnt], add);
}
}

public void desregisterAllEmailListeners(ServiceRecord[] srs) {
ServiceRecord sr;
ServiceConfiguration sc;
for (int i = srs.length - 1; i >= 0; --i) {
sr = srs[i];
try {
sc = new ServiceConfiguration(sr);
registerEmail(sc, false);
} catch (Exception e) {
e.printStackTrace();
}
}
}

public void messagesAdded(final FolderEvent e) {

....

}

....

}

当电子邮件到达时,它会执行 messageAdded 并执行特定操作。问题是,在某些设备中它可以工作,而在另一些设备上则不起作用。它在每种情况下都正确注册电子邮件监听器,但在某些情况下不执行 messageAdded。 有什么问题吗?

它适用于:9300 OS 6.0 和 OS 5.0 以及 9220 OS 7.1 它不适用于 9320 OS 7.1、9380 OS 7.1 和 9800 OS 6.0

非常感谢。

最佳答案

是的!!,它执行messageAdded....调试。我不知道为什么在某些设备中不显示日志......

寓意是: 不要只相信 logEvent,使用这个和调试工具,两者都可以!!

关于java - AddFolderListener 在某些设备中有效,但在其他设备中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14890858/

相关文章:

java - 从 Google Calendar API v3 中的重复事件获取异常

java - 使用什么代替 postDelayed 来节省内存

java - 使用java变量初始化jsp页面中的文本框值

powershell - 将桌面路径添加到 powershell 以轻松在文件夹之间切换?

c - 如何使用 C 程序更改目录并显示其目录

java - 如何使用 spring data solr 在 solr 中插入嵌套文档?

deployment - 黑莓部署和发布流程

java - 在 BlackBerry Java 应用程序中压缩文件

javascript - 在 BlackBerry 应用程序中将消息从 JavaScript 发送到 Java

安卓工作室。可绘制文件夹和大小?