2012-07-17 80 views
0

这里我在黑莓的全局屏幕中显示推送通知,我需要通过点击对话框中的确定按钮来推送屏幕。我想通过点击确定按钮来启动应用程序。如何从黑莓全球屏幕推新屏幕?

请帮帮我。 在此先感谢!

+0

你能帮我实施推送通知吗? – Signare 2012-07-17 06:43:13

+0

@Signare是的,我实现了通知,并且它来了。但我点击对话框确定按钮不会在特定的屏幕上。好的,我会帮你的。 – Newts 2012-07-17 06:44:31

+0

@Signare https://developer.blackberry.com/services/push使用此链接 – Newts 2012-07-17 07:11:27

回答

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()来跟踪该布尔标志。这一切取决于你的应用程序的工作方式。

+0

谢谢我会实施它,然后在评论中问你。 – Newts 2012-07-17 11:14:48