1

我已经成功开发了一个注册BlackBerry Push Messaging Service和接收推送消息的 BlackBerry 应用程序。Push Message以弹出消息的形式接收。我正在后端处理以在Chat Screen我创建的应用程序中显示此消息。发送到设备时的推送消息也存储在数据库中。该应用程序有一个正在运行的计时器,用于查询数据库中的任何新消息并将其显示在应用程序内。但是,这种方法效率不高,因为我的目标是在消息作为推送消息发送后立即显示消息。我的问题如下:

  1. 当App关闭,服务器发送推送消息时,这条消息会被传递吗?
  2. 当收到推送消息时,如何强制启动应用程序?
  3. 是否有任何特定的 API 或方法可用于检测何时收到推送消息?
  4. 收到消息时,我可以更改应用程序图标。但是,我希望在push message收到弹出窗口后立即更改。push message那么除了运行后台计时器之外,我如何检测何时收到?

请指导。

4

1 回答 1

1

我同意轮询数据库以获取新消息不是一个好的解决方案。

我要做的是在您的应用程序中实现两个入口点

1) 一个后台进程,它扩展了 BlackBerryApplication类。这是非图形的,将监听推送通知。

2)一个普通的用户界面,我认为你指的是“应用程序”。这将扩展UiApplication类。

当您的后台进程收到推送通知时,您可以选择打开它,UiApplication以便您的用户可以处理新的聊天消息。

要回答您的问题:

  1. 是的,将收到推送通知,因为后台进程始终在运行(您应该确保选中 BlackBerry_App_Descriptor.xml 文件中的Autorun at Startup框以获取后台入口点)。 在这里查看更多

  2. 后台进程可以使用此代码将 UI 应用程序带到前台。

  3. 接收推送通知的方式有多种……请参阅下面的链接。听起来你已经实现了这个。不过,我认为关键是您将推送处理代码放在后台 Application。然后,您的 UI 应用程序不需要任何特殊的 API。您的后台应用程序只需在适当的时候打开 UI。它可以选择使用这种技术将数据传递给 UI 应用程序。

  4. 同样,您需要设置两个入口点:一个 backgroundApplication和一个 normal UiApplication。后台应用程序将在启动时运行,注册推送通知,并在推送通知进入时接收它们(无需轮询)。然后,您可以决定做什么,包括打开您的 UI ( UiApplication)。

更多关于推送和入口点

于 2013-09-04T08:50:12.080 回答