0

在这里,我在黑莓的 globalscreen 中显示推送通知,我需要通过单击对话框的 OK 按钮来推送屏幕。我想通过单击确定按钮来启动应用程序。

请帮我。提前致谢!

4

1 回答 1

3

我不是 100% 确定我理解你想要什么,但如果这不起作用,只需添加评论,我会尽力给你一个更好的答案。

首先,在推送全局屏幕上阅读此内容

这在收到全局警报后执行操作

如果我理解正确,您的代码应该类似于第二个链接的示例。

然后,如果你实现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;
       }
   }
}

然后,在您的UiApplication班级中,您可以响应激活,如果用户从以下选项中选择OkDialog ,就会发生这种情况:

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()or Screen.onObscured()。这一切都取决于您的应用程序如何工作。

于 2012-07-17T09:40:02.860 回答