我有一个实现ViewListener的Listener类(包含两个方法,open,close,当任何受监视邮箱的电子邮件打开/关闭时将触发)。所以这是从扩展UiApplication的类App中调用的,当我读取电子邮件时,open方法被触发,我想用特定的Screen调用我的原始(App类)(向app发送消息就足够了) 。目前我拥有它,以便App有一个静态变量,用于存储在设备上运行的app实例。我用它来调用一个方法来改变屏幕,但它实际上并没有提起它。 app.requestForeground()似乎也不起作用。
有什么想法吗?
非常感谢!
答案 0 :(得分:0)
您是否尝试使用ApplicationManager来处理此问题?如果您有一个后台系统进程正在侦听事件,那么您的GUI进程可能甚至没有运行(即如果您执行了System.exit(0)
而不是后台处理)。这里有一段代码可用于查找GUI进程(基于其应用程序描述符),并将其置于前台(如果它正在运行)或启动它(如果不是):
// Check if app is already running
ApplicationDescriptor descriptor = [descriptor for your GUI entrypoint];
ApplicationManager appManager = ApplicationManager.getApplicationManager();
int pid = appManager.getProcessId(descriptor);
if (pid != -1) {
// App is running, bring it to the foreground
appManager.requestForeground(pid);
} else {
// App is not running, so launch it
try {
appManager.runApplication(descriptor);
} catch (ApplicationManagerException e) {
// Can't launch
}
}
要获取GUI入口点的应用程序描述符,请使用以下方法:
CodeModuleManager.getModuleHandleForClass(MyApp.class)
CodeModuleManager.getApplicationDescriptors(handle)