我有一個服務啓動另一個遠程服務。當第二個服務開始時,它使用IPC綁定到第一個服務,並且所有工作都很好。2服務通信
我的問題是,我想第一個服務能夠與第二個服務交談(現在,只有其他方式實現)。我可以以某種方式使用相同的粘合劑嗎?還是應該將第一個服務綁定到第二個服務? 也許有辦法讓兩個服務以某種方式在同一個連接上通話?
所有幫助將不勝感激。
弗拉德
我有一個服務啓動另一個遠程服務。當第二個服務開始時,它使用IPC綁定到第一個服務,並且所有工作都很好。2服務通信
我的問題是,我想第一個服務能夠與第二個服務交談(現在,只有其他方式實現)。我可以以某種方式使用相同的粘合劑嗎?還是應該將第一個服務綁定到第二個服務? 也許有辦法讓兩個服務以某種方式在同一個連接上通話?
所有幫助將不勝感激。
弗拉德
如果你需要第一Service
調用第二Service
方法,那麼你就需要從第二Service
得到了Binder
。如果你只是想溝通,你可以使用並在第一個Service
中設置Receiver
。
我認爲使用相同綁定的雙向通信對於服務是不可能的。我嘗試了很多,使用你自己的例子的說法,我發現的問題是從第二個服務檢索到的IBinder接口始終爲空。 我的意思是,第一個服務綁定到第二個服務,以獲得一個有效的IBinder與第二個服務交談。限制是,當第二個服務調用第一個服務時,它不能將接口傳遞給第一個服務,因此可能發生回調(從第一個到第二個)。 需要建立與第二個服務的新獨立IBinder連接。希望有人可以幫助我們這個。
Alberto。
你可能是對的。幸運的是,我不再需要這個功能。但有趣的是,溝通是單方面的。雙面溝通有很多用途,但有兩種不同的Ibinders,代碼變得凌亂,不必要的長。 – Vlad
如此基本沒有問題有2服務,每個持有另一個活頁夾? – Vlad
不,我不這麼認爲。 – LuxuryMode
謝謝。我有一些問題..但我想我做錯了什麼。 – Vlad