BlackBerry-无法对正在运行的应用程序进行前台处理
我有一个UI应用程序,它设置为启动时自动运行,这会产生一些线程在后台执行一些工作。它有一个屏幕,显示后台线程正在执行的工作的相关信息BlackBerry-无法对正在运行的应用程序进行前台处理,blackberry,blackberry-jde,Blackberry,Blackberry Jde,我有一个UI应用程序,它设置为启动时自动运行,这会产生一些线程在后台执行一些工作。它有一个屏幕,显示后台线程正在执行的工作的相关信息 class AppName extends UiApplication implements SystemListener2 { private static AppName app; public static void main(String[] args) { app = new AppName(); if
class AppName extends UiApplication implements SystemListener2 {
private static AppName app;
public static void main(String[] args) {
app = new AppName();
if (ApplicationManager.getApplicationManager().inStartup()) {
app.addSystemListener(app);
} else {
app.initializeLater();
}
app.enterEventDispatcher();
}
public AppName() {
pushScreen(new InfoScreen());
requestBackground();
}
private void initialize() {
// Spawns some threads doing work in the background
}
private void initializeLater() {
invokeLater(new Runnable() {
public void run() {
initialize();
}
});
}
public void powerUp() {
removeSystemListener(this);
initialize();
}
}
当我在模拟器中运行应用程序时,它工作正常。启动后,一切运行,然后当我点击图标时,屏幕被预先固定并显示。这是模拟器的输出:
3:20:26.612: AM: Starting AppName
3:20:26.612: AM: AppName already running
3:20:26.612: AM: Foreground is requested: AppName(304)
3:20:26.628: AM: Foreground is set: AppName(304)
但是,在设备上,屏幕从不显示。这是设备调试器输出:
[0.0] Starting AppName
[0.0] AppName already running
正如您所看到的,前台请求从未发出过。我通过重写UiApplication.activate方法并输入System.out消息来确认这一点,以查看它是否正在被调用,但没有被调用
有人知道为什么会发生这种情况吗?试试这个
UiApplication.getUiApplication().invokeAndWait(new Runnable() {
public void run() {
UiApplication.getUiApplication().requestForeground();
});
}
你在哪里打电话给requestForeground?谢谢,但最终导致设备本身出现问题。代码很好。