我已成功开发了一个注册BlackBerry Push Messaging Service
并收到推送消息的BlackBerry App。收到Push Message
作为弹出消息。我正在后端处理,以便在我创建的Chat Screen
中的应用程序内显示此消息。发送到设备时的推送消息也存储在数据库中。该应用程序有一个运行的计时器,用于查询数据库中的任何新消息并将其显示在应用程序内。然而,这种方法效率不高,因为我希望一旦作为推送消息发送消息就显示消息。我的问题如下:
push message
弹出窗口后立即更改。那么除了运行后台计时器之外,如何检测何时收到push message
?请指导。
答案 0 :(得分:1)
我同意轮询数据库以获取新消息并不是一个好的解决方案。
我要做的是在您的应用中implement two entry points:
1)后台进程,扩展了BlackBerry Application
类。这是非图形化的,会监听推送通知。
2)一个普通的用户界面,我认为你称之为“应用程序”。这将扩展UiApplication
类。
当您的后台进程收到推送通知时,您可以选择打开UiApplication
,以便您的用户可以处理新的聊天消息。
回答你的问题:
是的,将收到推送通知,因为后台进程始终在运行(您应该确保检查BlackBerry_App_Descriptor.xml文件中的启动时自动运行框,背景切入点)。 See more here
后台进程可以将UI应用程序带到前台with this code。
有多种方式可以接收推送通知...请参阅下面的链接。听起来你已经实现了这个。不过,我认为关键是您将推送处理代码放在后台 Application
中。然后,您的UI应用程序不需要任何特殊的API。您的后台应用程序只是在时间打开UI。它可以选择将数据传递到UI应用程序with this technique。
同样,您需要设置两个入口点:一个背景Application
和一个普通UiApplication
。后台应用程序将在启动时运行,注册推送通知,并在它们进入时接收推送通知(不进行轮询)。然后,您可以决定要做什么,包括打开您的用户界面(UiApplication
)。
http://devblog.blackberry.com/2010/06/super-apps-java-series-running-in-the-background-part-1/
当你download the Push SDK时,你会在那里找到示例代码。
在BlackBerry Eclipse插件中,您可以导入... - > 导入BlackBerry示例 - > HTTPPushDemo 以获取更多演示源。
Tutorial: Making an app push-enabled(OS 6.0 +)