Blackberry Alternate入口点 - 推动全局屏幕挂起

时间:2012-07-18 05:24:53

标签: blackberry push-notification

我正在处理推送通知。当我使用备用入口点进行推送通知时,devie的屏幕挂起。但是当我尝试没有备用入口点时,没有问题。我如何解决这个问题?

 final UiEngine ui = Ui.getUiEngine();
 Dialog myDialog = new Dialog(Dialog.D_OK_CANCEL, text, Dialog.OK, null, Manager.VERTICAL_SCROLL);
 myDialog.setDialogClosedListener(new MyDialogClosedListener());
 ui.pushGlobalScreen(myDialog, 1, UiEngine.GLOBAL_QUEUE);

2 个答案:

答案 0 :(得分:1)

尝试以下代码

public static void main(String[] args) {
    if (args.length > 0 && args[0].equals("pus") ){
        theApp = new App();
        theApp.enterEventDispatcher();
    } else { 
        BackgroundApplication backApp=new BackgroundApplication();
        backApp.setupBackgroundApplication();
        backApp.enterEventDispatcher();
    } 
} 

BackgroundApplication 扩展了应用程序。

 try{

      final Dialog screen = new Dialog(Dialog.D_OK_CANCEL, "hello",
                    Dialog.OK,
                    null,
                    Manager.VERTICAL_SCROLL);
     final UiEngine ui = Ui.getUiEngine();
     Application.getApplication().invokeAndWait(new Runnable() {
     public void run() {
     NotificationsManager.triggerImmediateEvent(0x749cb23a76c66e2dL, 0, null, null);
     ui.pushGlobalScreen(screen, 1, UiEngine.GLOBAL_QUEUE);
        }
       });
     screen.setDialogClosedListener(new MyDialogClosedListener());
       }
     catch (Exception e) {
        // TODO: handle exception
       }

答案 1 :(得分:0)

从备用入口点进入时,您可能无法在main方法中创建UiApplication实例。

如果是这样,Ui.getEngine将返回null。

EDIT
让bg应用程序在main中输入事件调度程序:

    public static void main(String[] args) {
        if (args.length > 0 && args[0].equals("pus") ){
            theApp = new App();
            theApp.enterEventDispatcher();
        } else { 
            BackgroundApplication backApp=new BackgroundApplication();
            backApp.setupBackgroundApplication();
            backApp.enterEventDispatcher();
        } 
    }