У меня есть приложение пользовательского интерфейса, которое настроено на автозапуск при запуске, который порождает несколько потоков, выполняющих некоторую работу в фоновом режиме. Он имеет один экран, на котором отображается информация о работе, выполняемой фоновыми потоками.BlackBerry - Не удается запустить запущенное приложение
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, чтобы узнать, вызвано ли это, но он не вызван.
Кто-нибудь не знает, почему это происходит?
где вы звоните requestForeground? – Tamar