【问题标题】:BlackBerry - Receive Push Message inside App黑莓 - 在应用程序内接收推送消息
【发布时间】:2013-09-07 12:48:39
【问题描述】:

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

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

请指导。

【问题讨论】:

  • 您必须支持哪个最低操作系统?我不清楚您是否已经实现了在设备上接收推送消息的代码。你能澄清一下吗?
  • @Nate 最小操作系统目标是 6。我已经实现成功接收推送消息。我的问题是如何检测应用程序关闭时何时收到推送消息?其次,如何检测应用程序返回时何时收到推送,以便在应用程序内的适当屏幕中捕获它?我尝试了计时器,但这并不能确保在收到消息时捕获消息。这种方法有延迟。
  • 如果您的应用程序(UI 应用程序)关闭,您的后台应用程序将始终在后台运行。如果您收到通知,您可以使用代码模块管理器运行/打开您的应用程序。

标签: blackberry push-notification push message


【解决方案1】:

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

我要做的是在你的应用中implement two entry points

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

2) 一个普通的 UI,我认为您将其称为“应用程序”。这将扩展 UiApplication 类。

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

回答您的问题:

  1. 是的,将收到推送通知,因为后台进程始终在运行(您应确保选中 BlackBerry_App_Descriptor.xml 文件中的 Autorun at Startup 框,以获取背景入口点)。 See more here.

  2. 后台进程可以将UI应用带到前台with this code

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

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

更多关于推送和入口点

【讨论】:

  • 您是否建议使用备用入口点让应用程序始终在后台运行?我已经实现了alternate entry point 选项,但我不希望应用程序始终在后台运行。用户可以选择完全关闭应用程序。在这种情况下,是否可以发送推送消息并强制启动应用程序?
  • @Sarah,没错。后台进程将创建您的Application 对象(不是UiApplication)并始终运行。但是,没有 UI,用户不会知道它的存在。这应该不是问题。如果您查看this link I provided above,第 4 部分将讨论提高后台应用程序效率的方法。如果你这样做,你应该没问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-22
  • 1970-01-01
相关资源
最近更新 更多