【问题标题】:Blackberry - how to start my own service at phone boot-up?黑莓 - 如何在手机启动时启动我自己的服务?
【发布时间】:2009-10-09 21:24:29
【问题描述】:

我想在手机启动时启动自己的服务实现?

如何实现?

【问题讨论】:

    标签: blackberry blackberry-storm autorun


    【解决方案1】:

    您只需要在黑莓JDE的项目属性中设置“系统模块”和“自动启动”选项。这将在手机启动时启动您的应用。

    【讨论】:

      【解决方案2】:

      引用How To - Write safe initialization code

      应用程序可能需要在系统启动期间自动运行一次以执行初始化例程,例如注册侦听器和从持久存储中检索信息。

      在系统完成核心启动任务(例如安全检查、建立网络连接和其他任务)之前,不应执行此类例程。

      因此,应用程序应确保在运行自己的初始化代码之前完成系统启动,如下例所示:

      class MyApp implements SystemListener {
          public static void main(String[] args) {
              MyApp appInstance = new MyApp();
              // If system startup is still in progress when this
              // application is run.
              if (ApplicationManager.getApplicationManager().inStartup()) {
                  appInstance.addSystemListener(appInstance);
              } else {
                  appInstance.doStartupWorkLater();
              }
              appInstance.enterEventDispatcher();
          }
          // constructs
          MyApp() {
          }   
          private void doStartupWorkLater() {
              invokeLater(new Runnable() {
                  public void run() {
                      doStartupWork();
                  }
              });
          }  
          private void doStartupWork() {
          }    
          // SystemListener
          public void powerUp() {
              removeSystemListener(this);
              doStartupWork();
          }
          // TODO: other SystemListener methods
      }
      

      【讨论】:

        【解决方案3】:

        您可以使用 IPC(某种)机制在“服务”和应用程序之间交换数据。有两种方法可以做到这一点:

        1. net.rim.device.api.system.RuntimeStore 具有放置和获取由唯一 ID(长)标识的对象的方法。此 ID 可以从 JDE IDE 中生成。
        2. net.rim.device.api.system.ApplicationManager 具有允许发布全局事件的方法,可以交换数据(再次由唯一 ID 标识)。另一个应用程序必须实现 GlobalEventListener 并向系统注册 - addGlobalEventListener。

        在第一种方法中,将数据添加到存储时不会通知其他实体。

        【讨论】:

          猜你喜欢
          • 2019-05-16
          • 2012-01-01
          • 1970-01-01
          • 2011-08-29
          • 2011-07-30
          • 1970-01-01
          • 1970-01-01
          • 2018-09-20
          • 2012-02-02
          相关资源
          最近更新 更多