1

電話の起動時に独自のサービスの実装を開始したいですか?

それを達成する方法は?

4

3 に答える 3

2

ハウツーからの引用-安全な初期化コードを書く

リスナーの登録や永続ストレージからの情報の取得などの初期化ルーチンを実行するために、システムの起動時にアプリケーションを自動的に1回実行する必要がある場合があります。

このようなルーチンは、システムがセキュリティチェック、ネットワーク接続の確立、その他のタスクなどのコア起動タスクを完了するまで実行しないでください。

したがって、次の例に示すように、アプリケーションは、独自の初期化コードを実行する前に、システムの起動が完了していることを確認する必要があります。

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
}
于 2009-10-09T13:24:29.220 に答える
2

ブラックベリー JDE のプロジェクト プロパティで「システム モジュール」および「自動開始」オプションを設定するだけです。これにより、電話の起動時にアプリが起動します。

于 2009-09-18T15:25:12.410 に答える
0

IPC(一種の)メカニズムを使用して、「サービス」とアプリケーションの間でデータを交換できます。これを実現するには、次の2つの方法があります。

  1. net.rim.device.api.system.RuntimeStoreには、一意のID(long)で識別されるオブジェクトを配置および取得するためのメソッドがあります。このIDは、JDEIDE内から生成できます。
  2. net.rim.device.api.system.ApplicationManagerには、データを交換できるグローバルイベントを投稿できるメソッドがあります(一意のIDで再度識別されます)。他のアプリケーションは、GlobalEventListenerを実装し、システムに登録する必要があります--addGlobalEventListener。

最初のアプローチでは、データがストアに追加されても、他のエンティティには通知されません。

于 2009-09-30T08:33:36.993 に答える