1

Androidでアクティビティへのメッセージ返信を取り戻すにはどうすればよいですか? アクティビティが Java オブジェクト (実行中のスレッド) の 1 つに何かを実行するように要求し、応答を返すとします。メッセージを送信したアクティビティに返信することをJavaオブジェクトはどのように知ることができますか? 私には多くの活動があり、多くのオブジェクトが互いに通信しています。
これを Android メッセージで実装するにはどうすればよいですか? ここではブロードキャストを使用したくありません。

4

3 に答える 3

7

これには Messenger を使用できます。メッセンジャーを返信パスとして設定できます。メッセージ内には、応答を返すハンドラーが保持されます。

final Messenger messenger = new Messenger(handler); 
. 
.
msg.replyTo = messenger;  // set the handler of the reply activity.
msg.setData(mBundle);     // if any additional data available put to a bundle
destinationClass.mHandler.sendMessage(msg);



// in destination class

Messenger msger = msg.replyTo;  // get the message sender's details.

Message msg2 = Message.obtain();
msger.send(msg2);                // send the reply message again to the sender
于 2013-09-30T09:44:06.733 に答える
1

Handlerスレッドと通信しようとしている場合は、を使用できます。ドキュメントから

Handler は、スレッドを管理するための Android システムのフレームワークの一部です。Handler オブジェクトはメッセージを受信し、コードを実行してメッセージを処理します。

このトピックに関する素晴らしい記事: AndroidBackgroundProcessing

于 2013-09-26T03:53:33.300 に答える
0

可能なアプローチはコールバックです。Java でのコール バック (コードの説明) またはオブザーバー パターンhttp://www.vogella.com/articles/DesignPatternObserver/article.html

于 2013-09-26T03:59:59.023 に答える