android 進程通信之messenger

<span style="font-size:18px;">android 進程通信之messenger 


一般跟另一進程的service通信可以採用,具體流程如下:
service 進程中, 
1.實現messenger,   
new Messenger(new Handler(){
實現handleMessage處理其他進程來的message請求,
並通過message的replyTo對象(Messenger)的send方法跟請求進程通信
})
2.實現onBind(Intent intent)方法返回messenger的binder對象,供其他進程獲得以進行通信。 




需要與service進程通信的進程假設爲T,需要實現。
1.綁定service,獲取到目標service的binder對象,並以關聯Messenger(IBinder)
  bindService(Intent(this,上面Service),ServiceConnection...  )
  
2.使用Messenger的send方法跟目標Service進程message{此消息可以帶replyto 以接收目標service的回覆}通信。 
3.如果2中有設置replyto對象,則replyto的實現可以參考service進程中的1.實現messenger. 




Messenger 有兩種構造函數:
 public Messenger(Handler target) //需要接收消息時使用
 public Messenger(IBinder target) { //從bindservice時的getBinder獲取,給target service發送消息時使用。
	mTarget = IMessenger.Stub.asInterface(target); -->target service的一個代理
}


簡單sample可以參考 http://blog.csdn.net/chenfeng0104/article/details/7010244









</span>


發佈了25 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章