2

我想知道用户何时从我的应用程序抛出的通知区域(从主屏幕打开 - 单击应用程序通知图标)打开消息。

ApplicationMessageFolderListener不要为此工作,注册 applicationMenuItem 会导致消息不再打开(请参阅Blackberry - 打开消息时使用 ApplicationMenuItem)。

有人知道怎么做这个吗?

4

1 回答 1

0

下面的代码应该会有所帮助:

ApplicationMessageFolderRegistry registry =
    ApplicationMessageFolderRegistry.getInstance();
ApplicationMessageFolder inbox = 
    registry.getApplicationFolder(MessageListHelper.YOUR_CUSTOM_INBOX_FOLDER_ID);
ApplicationDescriptor daemonDescr = 
    ApplicationDescriptor.currentApplicationDescriptor();

从存储中获取现有消息并将它们注册到文件夹中。

MessageStore messages = MessageListHelper.getMessageStore();
ApplicationMessageFolder inbox =
   registry.registerFolder(MessageListHelper.YOUR_CUSTOM_INBOX_FOLDER_ID, 
   "Inbox", messages.getInboxMessages());

将自己注册为回调通知的侦听器。

inbox.addListener(this, ApplicationMessageFolderListener.MESSAGE_DELETED |
   ApplicationMessageFolderListener.MESSAGE_MARKED_OPENED |
   ApplicationMessageFolderListener.MESSAGE_MARKED_UNOPENED, daemonDescr);
messages.setFolders(inbox);
registry.setRootFolderName(MessageListHelper.ROOT_FOLDER_NAME);

我只是在将侦听器添加到收件箱时感觉到,您可能会错过您设置的选项,例如

ApplicationMessageFolderListener.MESSAGE_DELETED | 
ApplicationMessageFolderListener.MESSAGE_MARKED_OPENED | 
ApplicationMessageFolderListener.MESSAGE_MARKED_UNOPENED

所以,actionPerformed()只是第一次被调用来标记它旧或什么的。

于 2012-12-27T10:27:47.357 回答