我已经开发了一个黑莓应用程序,当一条短信进来时会弹出一个全局弹出屏幕。我有这个应用程序在火炬上工作正常,现在正在我的风暴2上测试它。它正在用4.7 jde构建。
问题是,当我收到短信时,我得到的结果与2个不同的设备/操作系统不一致,在火炬上应用程序显示弹出屏幕并关闭转义键没有问题。
然而,在风暴2(操作系统5.0)上,整个手机冻结,需要重启。我怀疑屏幕有点被推入堆栈,因为它有一个自动收报机,当我重新启动手机时,我可以看到日志中的log.info()注释来自重启之前的自动收报机运行方法。
当设备锁定并且没有响应按键时,我看不到堆叠上的任何屏幕(在火炬按下时根据需要关闭我的弹出窗口。)
我按照各种边框页面的建议推动屏幕。
synchronized (Application.getEventLock())
{
Ui.getUiEngine().pushGlobalScreen(pop, 1, UiApplication.GLOBAL_QUEUE);
}
关于我的应用程序的一些注意事项 - 该应用程序是一个系统自动启动模块,并覆盖acceptForeground,因此它永远不会显示在应用程序切换器中。它扩展了应用程序。
欢迎任何建议,因为这让我很难过。
问候
答案 0 :(得分:0)
我想知道你用来推送的方法......因为你显然希望与用户交互,你可能会更好地为UiApplication子类化,在实例化后输入它自己的事件调度队列,然后利用它的进程启动你的popup通过invokeLater()
我之所以这么说,是因为我经常将此方法用于后台推送式应用程序。
如果您依赖捕获通用事件锁,似乎您可能会遇到其他可能不如您自己的友好或礼貌的应用程序的问题。
希望这至少是有帮助的。