我正在处理推送通知。当我使用备用入口点进行推送通知时,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);
答案 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();
}
}