使用Blackberry 4.5中的服务进行通信处理

时间:2009-09-30 13:36:54

标签: blackberry blackberry-storm rim-4.5

我正在开发一款应用。 (比如google talk),在手机启动时会启动一个持续运行的后台服务。该服务与UI交互(意味着对服务器的任何请求首先从UI发送到服务并且从服务发送到服务器)&任何响应都通过服务发送到UI。

我知道在启动时启动后台服务的是“创建备用入口点并使用它来启动后台服务。”

  

右键单击项目属性,然后转到“应用程序”选项卡,然后选中“启动时自动运行”/“系统模块”

是不是?

在Android中,您可以使用系统定义的Service类来实现此服务。如何在Blackberry 4.5中实现这一目标?我想在一个项目中完成它(UI和服务)。

任何解决方案?


感谢您的回复。

我收到了

的链接

"How To - Setup an alternate entry point for my application"

是启动服务的正确解决方案吗?

我想要这款应用。像电子邮件app。当收到的邮件到来时,它会通知你(就像你的主应用程序被最小化一样,那么你的服务也会在后台运行,这将持续检查任何收到的邮件,并将通过任何应用程序图标更改通知主UI应用程序)

因此,有没有像Service类这样的类会在启动时启动,或者“为我的主UI应用程序设置备用入口点”是唯一的解决方案吗?


感谢您的回复..

我读了这篇GlobalEveltListener&尝试通过在自动启动时启动服务来处理2个应用程序(服务应用程序和UI应用程序)之间的通信。

我正在使用“持久存储”&在两个应用程序中访问它。但是持久存储名称应该是唯一的,否则会出现“链接器错误:无法启动服务应用程序。因为持久存储是多重定义的”。但是我必须访问Persistent Store这两个应用程序来进行一些数据库调用。

所以现在我试图通过将两个应用程序放在一个项目中来处理服务。因此持久存储将是唯一的。

如何实现服务与服务之间的这种沟通UI在一个项目中?

2 个答案:

答案 0 :(得分:4)

如果您希望程序在服务模式下运行,从启动开始并在后台运行,则只需要一个备用入口点;在应用程序模式下,主屏幕上有一个图标,用户可以点击该图标开始与您的软件进行交互。在这种情况下,您需要有一个入口点告诉程序“您在启动时自动启动”,并且需要告诉程序“您正在启动以响应用户交互”。

还有其他方法可以解决这个问题。如果您的应用程序通过ApplicationMenus使用户可以使用,那么您将创建唯一的入口点“自动运行”和“系统模块”,以便它在启动时启动,注册菜单并且不显示图标。

您也可以使用一个入口点设置为“自动运行”而不是系统模块,以便显示图标并使用ApplicationManager.inStartup()方法检测启动案例的开始。

您描述的方法适用于您正在开发的应用程序类型。它允许您在每个入口点为程序指定不同的参数,从而简化了初始化。

答案 1 :(得分:0)

请参阅我之前给出的另一个问题here的回答。这基本上是两个正在运行的进程之间的IPC机制。