这里我在blackberry的globalscreen中显示推送通知,我需要通过单击对话框的OK按钮来推送屏幕。我想通过单击“确定”按钮启动应用程序。
请帮帮我。 提前谢谢!
答案 0 :(得分:3)
我不是100%确定我理解你想要什么,但如果这不起作用,只需添加一个评论,我会尽力给你一个更好的答案。
首先,read this on pushing global screens
和this on performing actions after receiving global alerts
如果我理解正确,你的代码应该类似于第二个链接的例子。
然后,如果您实施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
课程中,您可以回复激活,如果用户从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()
来跟踪该布尔标记。所有这些都取决于您的应用的工作方式。