在这里,我在黑莓的 globalscreen 中显示推送通知,我需要通过单击对话框的 OK 按钮来推送屏幕。我想通过单击确定按钮来启动应用程序。
请帮我。提前致谢!
我不是 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()
。这一切都取决于您的应用程序如何工作。