0

私は Android アプリと Blackberry アプリ (同じアプリで異なるプラットフォーム) を構築しています。イベントを処理する抽象クラスを作成しています。たとえば、Android で「保存」ボタンを押すと、通知/イベントが投稿されます。抽象クラスはそのイベントを受け取ります。Blackberry で「保存」ボタンを押すと、同じことが行われます。

これを達成するための最良の方法は何ですか?MBeans とその通知クラスだけでなく、EventObject も調べましたが、それらは非常に複雑に見えます。Objective-C では、通知用のクラス インスタンスを Objective-C の notificationcenter に登録するだけです。次に、通知をトリガーするクラスで、トリガー時に「postNotification」の行に沿って何かを行います。Javaで簡単なことはありますか?また、これらの通知でオブジ​​ェクトを送信する必要があります。

ああ、実際には MBeans クラスを使用できないと思います。Blackberry Java バージョンの一部ではありません。

ありがとう!

4

1 に答える 1

1

BlackBerry では、これらのイベントを UI 要素 (ButtonField、ListField など) から生成することを計画している場合、すべて Field.setChangeListener(FieldChangeListener) が付属しているため、それにリスナーをアタッチするだけで済みます。これを IO や処理などに応答するものにしたい場合は、Event および EventListener クラスを使用してこれを実現できます。個人的には、単純な通知に必要なものよりも少し多いと思うので、通常は独自の単純なインターフェイスを作成します。

Web サービスに接続して、州と州都のリストを含む XML ファイルをダウンロードする Thread を拡張するクラスがあるとします。そしてそれを処理します。public void addEventHandler(EventHandler)抽象メソッドとを使用して、インターフェイス EventGenerator を作成できますprotected void notifyHandlers(Object obj)notifyHandlers()この内部には、ループして呼び出しを送信できるEventHandler を格納する Vector がありますhandler.handleEvent(Object)。データの処理が終了したら、それを Oject (おそらく Hashtable またはカスタム States Bean) にラップします。これstatesを と呼び、内部で を呼び出しますnotifyHandlers(states)。各 EventHandler を通過するときに、 を呼び出しますhandler.handleEvent(states)。各呼び出しの周りに try/catch を配置して、1 つの EventHandler がすべての実行を妨げないようにすることを検討してください。

そのため、EventHandlers について説明します。これは、抽象メソッドを持つ別のインターフェイスですpublic void handleEvent(Object obj)statesが取得された後、それらをリストに表示する画面があるとします。この Screen は EventHandler を実装し、 を使用してそれ自体を EventGenerator に登録しgenerator.addEventHandler(this)ます。処理が完了するたびに、このメソッドが呼び出され、返されたオブジェクトで好きなことを行うことができます。

実装できる追加機能は、BB のナビゲーション メソッドと同様に、イベントが処理された場合に true を返すように変更public void handleEvent(Object obj)することです。public boolean handleEvent(Object obj)

于 2011-05-18T20:45:29.127 に答える