0

ここでは、Blackberry のグローバル画面にプッシュ通知を表示しています。ダイアログの [OK] ボタンをクリックして画面をプッシュする必要があります。OKボタンをクリックしてアプリを起動したい。

私を助けてください。前もって感謝します!

4

1 に答える 1

3

私はあなたが何を望んでいるかを 100% 理解しているとは言えませんが、これがうまくいかない場合は、コメントを追加してください。より良い回答を提供できるように努めます。

まず、グローバル画面のプッシュについてこれを読んでください

これは、グローバルアラートを受信した後のアクションの実行に関するものです

私が正しく理解していれば、あなたのコードは2番目のリンクの例に似ているはずです。

次に、2 番目のリンクのように を実装するDialogClosedListenerと、次のようになります。

通知を受け取ったときにバックグラウンドから呼び出されます。

Dialog myDialog = new Dialog(Dialog.D_OK_CANCEL, "Hello", Dialog.OK, null, 0);
myDialog.setDialogClosedListener(new MyListener());
UiApplication.getUiApplication().pushGlobalScreen(myDialog, 1, true);

ダイアログリスナーの実装:

private class MyListener implements DialogClosedListener {

    public void dialogClosed(Dialog dialog, int choice) {
       switch (choice) {
          case Dialog.OK: 
              // ok clicked
              UiApplication.getUiApplication().requestForeground();
              break;
          case Dialog.CANCEL:
              // cancel clicked. or escape pressed
              break;
          default:
              break;
       }
   }
}

そして、クラスで、ユーザーがから [ OKUiApplication ] を選択した場合に発生するアクティベーションに応答できます。Dialog

public class MyApp extends UiApplication {
    private boolean _nextScreenShowing = false;
    public void activate() {
        super.activate();
        if (!_nextScreenShowing) {
            pushScreen(new NextScreen());
            _nextScreenShowing = true;
        }
    }
}

_nextScreenShowing次の画面を押すことが適切かどうかを確認するために、変数を表示します。おそらく毎回activate呼び出されるわけではありません。Application.deactivate()メソッドに応答することによって、そのブール値フラグを追跡する必要がある場合がありScreen.onExposed()ますScreen.onObscured()。それはすべて、アプリの動作に依存します。

于 2012-07-17T09:40:02.860 に答える