Je voudrais savoir l'endroit approprié pour mettre le code de démarrage séquentiel basé sur GUI dans mon application Blackberry.Où mettre le code de démarrage basé sur l'interface graphique dans une application Blackberry?
In main(), I create MyApp and enterEventDispatcher()
I have UiApplication (MyApp)
In the MyApp CTOR:
- I create a MainScreen (MyMain)
- I call pushScreen() on MyMain
Lorsque le répartiteur d'événements commence, est-il un événement que je peux écouter dans mes MainScreen qui me donnera le fil de l'événement où je peux heureusement faire des tâches de démarrage synchrones?
Je peux utiliser invokeLater() mais je souhaite que chaque appel se bloque car leur ordre est important dans cette phase. invokeAndWait() déclenche une exception dans la plupart des cas où j'ai tenté de l'utiliser.
J'ai essayé le code ci-dessous mais je reçois une exception en essayant de courir sur la ligne "Testing 1 2 3".
public class MyApp extends UiApplication { static public void main(String[] args) { new MyApp().enterEventDispatcher(); } public MyApp() { MyView theView = new MyView(); theView.startUpdateTimer(); pushScreen(theView); Dialog.alert("Testing 1 2 3"); } }
L'interface utilisateur * fonctionnera-t-elle * avant d'appeler enterEventDispatcher? Est-ce que je peux faire des choses d'interface utilisateur interactives? Par exemple, pour clarifier, disons que je veux demander à l'utilisateur s'il souhaite que la fonctionnalité X soit activée. Puis-je dire Dialog.ask() dans main, obtenir la réponse, faire des ajustements à mes paramètres, le tout avant d'appeler enterEventDispatcher? Sinon, je suppose que je fais juste la queue pour être lancé une fois que le répartiteur démarre. –
J'ai essayé un Dialog.alert() dans main. Comme prévu, je reçois une IllegalStateException. Argh. Je suppose que je pourrais emballer tout mon code de démarrage dans un invokeLater mais j'aimerais savoir si c'est la façon RIM de le faire. –