android IPC 之Binder通信

Binder通信機制說來簡單,但是在使用的過程的遇到瞭一些問題,最後終於解決瞭,在這總結一下,一並分享給大傢:
1、要使用Binder通信,首先要定義接口,然後實現服務端BnInterface***和客戶端BpInterface***,說到底一個是把參數解包,一個是把參數打包。
2、服務端要能夠接收Binder調用請求,要具備兩個條件:一個是實現Bn接口,另一個是調用IPCProcess()-》self->startThreadPool() www.aiwalls.com
IPCThread()->Self->joinThreadPool();
這兩句話非常關鍵,因為他啟動瞭一個線程在後臺,負責讀取Binder接口調用的請求,然後調用具體接口,如果沒有這個線程,你的服務是收不到調用請求的,客戶端會調用失敗(died)。
對於客戶端也一樣,如果要支持回調,也必須要啟動讀取Binder調用的線程,否則,回調失敗。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *