2012-09-07 80 views
0

hi隊友我有一個線程S和n線程C。 C使用sendler消息(msg)在S的處理程序上向S發送請求。 每個客戶端C1 ... CN都有一個私有處理程序。 S在他的處理程序上接收消息,詳細說明請求並希望在指定客戶機的私有處理程序上發送sendMessage(risp)響應。但是他怎麼知道C會等待響應的處理程序是什麼?客戶端C可以在請求消息中插入一個引用他的處理程序的地方接收響應?多客戶端一個服務器架構與android中的處理程序

+0

我的服務器是一個簡單的線程,詳細說明客戶端的味精併發送給他回覆 – esoni

+0

如何接受我的問題的答案?我是新手到論壇 – esoni

回答

1

在發送郵件時設置其replyTo領域:

msgYouSend.replyTo = new Messenger(yourHandler); 

然後,你可以這樣回答:

msgYouReceived.replyTo.send(yourReplyMessage) 

replyTo文檔在http://developer.android.com/reference/android/os/Message.html

+0

msgYouSend是客戶端的消息,msgYourReceived是服務器的消息? – esoni

+0

@dario frongi msgYouSend你正在準備在客戶端併發送到服務器。在服務器上,你有它作爲msgYouReceived –

+0

當我創建我的響應消息調用你的例子「yourReplyMessage」什麼處理程序有我在構造函數中使用?它的好消息yourReplyMessage = requestHandler.obtainMessage(); ?或者我必須在其他方法中創建它? – esoni

0
Message yourReplyMessage=new Message(); 
Bundle b=new Bundle(); 
b.putParcelable(keyStringResponse, risp); 
yourReplyMessage.setData(b); 
try { msgYouReceived.replyTo.send(yourReplyMessage); 
} catch (RemoteException e) { } 

其我的解決方案。 ..你認爲這樣可以嗎?

相關問題