如何同时运行后台服务应用程序和UIApplication

时间:2011-04-24 09:42:45

标签: blackberry

我想同时运行后台服务应用程序和UIApplication。

是否可以在同一个项目中创建或者需要创建单独的单独项目。

实际上我对如何在Event Thread中调用或启动后台服务感到困惑。

2 个答案:

答案 0 :(得分:7)

这是您为应用程序设置备用入口点的方法:

A-使用适用于Eclipse®的BlackBerry®Java®Plug-in

为原始应用程序创建项目后,创建备用入口点以启动应用程序UI。

1-双击项目中的BlackBerry_App_Descriptor.xml。
2-检查系统模块,不要在BlackBerry主屏幕上显示应用程序图标。
3 - 单击“备用入口点”选项卡。
4-单击“添加”按钮。
5-输入入口点的标题,然后单击“确定”。
6-指定将使用此备用入口点启动应用程序的应用程序参数(例如:gui)。
7-进入“共同步骤”部分。
8-修改原始项目的main()方法如下:

public static void main(String[] args) {
     if ( args != null && args.length > 0 && args[0].equals("gui") ){
          // code to initialize the app
          theApp.enterEventDispatcher();
     } else {
          // code to launch the background thread }
     }
}



B-使用BlackBerry JDE

为原始应用程序创建项目后,您必须为UI入口点创建另一个项目。假设要运行的线程与原始应用程序存在于同一项目中,请执行以下步骤:

1-右键单击项目节点,然后选择“属性”。
2-在“属性”窗口中,选择“应用程序”选项卡。
3-确认已选中以下选项:启动时自动运行和系统模块(向系统注册线程)。
4-在与原始项目相同的文件夹下创建另一个项目。右键单击新项目节点,然后选择“属性”。
5-选择Application选项卡,然后从Project type下拉列表中选择Alternate CLDC Application Entry Point。如附件所示,从Alternate入口点下拉列表中选择原始项目的名称(例如,trafficreporter)。还要指定使用此备用入口点启动应用程序的参数(例如:gui)。 继续执行“共同步骤”部分。
6-修改原始项目的main()方法如下:

public static void main(String[] args) {
     if ( args != null && args.length > 0 && args[0].equals("gui") ){
          // code to initialize the app
          theApp.enterEventDispatcher();
     } else {
          // code to launch the background thread }
     }
}

答案 1 :(得分:1)

http://supportforums.blackberry.com/t5/Java-Development/Background-thread-for-push-notifications/td-p/563071

Blackberry开发论坛充满了线程和示例代码来完成这件事。

就个人而言,我使用备用入口点方法,将后台应用程序作为自动启动UiApplication(没有图标)运行,从不推送主屏幕,但使用自己的调度线程抛出对话框或类似的通知,然后当按下/点击实际的主页图标,我启动Ui入口点与用户一起玩。