1

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

 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);
4

2 回答 2

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
       }
于 2012-07-18T10:51:09.227 回答
0

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

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

编辑
使 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();
        } 
    } 
于 2012-07-18T06:09:55.090 回答