私は、BlackberryアプリにGUIベースのシーケンシャルスタートアップコードを置く適切な場所を知りたいと思っています。Blackberry AppにGUIベースのスタートアップコードを入れる場所は?
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
イベントディスパッチャが起動したら、私が喜んで同期起動の作業を行うことができますイベントスレッドを与える私のMainScreenで私が聞くことができるイベントがありますか?
私はinvokeLater()を使用できますが、このフェーズではその順序が重要であるため、呼び出しをブロックする必要があります。 invokeAndWait()は、私がそれを使用しようとしたところで例外をスローします。
以下のコードを試しましたが、 "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"); } }
enterEventDispatcherを呼び出す前にUI *が動作しますか?つまり、私はインタラクティブUIのことをすることはできますか たとえば、明確にするために、機能Xを有効にしたいかどうかをユーザーに尋ねたいとします。私はenterEventDispatcherを呼び出す前に、Dialog.ask()をmainで呼び出し、応答を取得し、自分の設定を調整することはできますか?それ以外の場合は、ディスパッチャの起動後に実行するようにキューに入れていると思います。 –
私はDialog.alert()をmainで試しました。期待どおり、私はIllegalStateExceptionを取得します。アー。 invokeLaterにすべてのスタートアップコードをラップすることができると思いますが、それがRIMの方法であるかどうかを知りたいと思います。 –