之前BBextra在个别blackberry运行时无法显示菜单的问题的原因

来源:互联网 发布:cr2打开软件 编辑:程序博客网 时间:2024/05/20 18:19

在RIM的开放DEMO中,关于email的监听有一段sample的代码。

 

            Store emailstore = Session.waitForDefaultSession().getStore();
            emailstore.addFolderListener(new FolderListener() {
                public void messagesAdded(FolderEvent e) {

                ...

                ...

               }

            }

 

用此方法获得一个store,然后通过store的方法去addfolderlistener去监听是否有新邮件进来。

但是当这里的store获得了一个错误值的时候,那么整个程序就会中断。

看到这里,肯定有人会问,在什么情况下store会获得错误呢?

首先我们要有必要了解waitfordefaultsession,虽然API上写明这个方法当发生错误时会返回NoSuchServiceException,

但是在我的实际应用中,并没有这方面的msg,而只是一味的中断了程序,并抛出一个unknowexception.

 

诊断中发现waitfordefaultsession会去查找service book中默认的email服务,当sb中没有EMAIL服务,就会抛出异常并中断。

这也就解释了为什么个别用户安装成功,但点按钮图标没反映的情况,这类用户可能都是用GMAIL这种邮件服务,而这种邮件服务并不会

在BLACKBERRY上创建EMAIL的service book。