我正在处理推送通知。当我使用另一个入口点进行推送通知时,设备的屏幕挂起了。但是当我在没有备用入口点的情况下尝试时,没有问题。我如何解决这个问题?
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);
尝试以下代码
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();
}
}
背景应用程序扩展应用程序。
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
}
从备用入口点输入时,可能没有在main
方法中创建UiApplication实例。
如果是这样的话,Ui.getEngine
将返回null。
编辑
使bg应用程序主要进入事件调度器:
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();
}
}