J'essaie de faire apparaître un dialogue global à partir d'une discussion en arrière-plan que j'ai démarrée à partir d'un autre point d'entrée.
public static void main(String[] args) {
MyApp theApp = new MyApp();
if (args != null && args.length > 0 && args[0].equals("test")) {
new Thread(new Runnable() {
public void run() {
try {
synchronized (UiApplication.getEventLock()) {
UiEngine ui = Ui.getUiEngine();
Screen screen = new Dialog(Dialog.D_OK, "Test", Dialog.OK,
Bitmap.getPredefinedBitmap(Bitmap.EXCLAMATION),
Manager.VERTICAL_SCROLL);
ui.pushGlobalScreen(screen, 1, UiEngine.GLOBAL_MODAL);
}
} catch (Exception e) {
System.out.println(e.toString());
}
}
}).start();
} else {
theApp.enterEventDispatcher();
}
}
J'ai essayé de nombreuses variantes pour le faire fonctionner, mais il ne s'affiche toujours pas. J'ai essayé
synchronisation Application.getEventLock()
J'ai également essayéUiApplication.getUiApplication().invokeLater
, UiApplication.getUiApplication().invokeAndWait
. J'ai même essayé synchronizing the eventlock
avant d'appeler le invokeLater
(ce qui me semble redondant, mais j'ai quand même essayé...). Je ne suis pas sûr de savoir ce que je fais de travers.