0

嗨,伙计,我有一个线程 S 和 n 个线程 C。C 使用 S 的 Handler 上的 sendMessage(msg) 向 S 发送请求。每个客户端 C1...CN 都有一个私有处理程序。S 在他的处理程序上接收消息,详细说明请求并希望在指定客户端的私有处理程序上使用 sendMessage(risp) 发送响应。但是他怎么知道 C 等待响应的处理程序是什么?客户端 C 可以在请求消息中插入一个引用他的处理程序在哪里接收响应?

4

2 回答 2

1

发送消息时设置其replyTo字段:

msgYouSend.replyTo = new Messenger(yourHandler);

然后你可以这样回复:

msgYouReceived.replyTo.send(yourReplyMessage)

请参阅http://developer.android.com/reference/android/os/Message.htmlreplyTo上的文档

于 2012-09-07T08:39:57.277 回答
0
Message yourReplyMessage=new Message(); 
Bundle b=new Bundle();
 b.putParcelable(keyStringResponse, risp); 
yourReplyMessage.setData(b);
 try { msgYouReceived.replyTo.send(yourReplyMessage);
 } catch (RemoteException e) { }  

这是我的解决方案...您认为可以吗?

于 2012-09-10T12:26:55.620 回答