2011-04-13 68 views
0

我想暴露方法使用我的活頁夾的子類。我會讓我的服務返回活頁夾等,等等......在一個活頁夾調用方法

我的問題是:我可以讓我的Binder實現調用方法在我的其他類中定義。作爲一個例子,我使用XMPP來連接,登錄和發送聊天消息。如果我在不同的類中定義這些方法(從模塊化的角度來看這是有意義的),我可以簡單地通過我的Binder將它們暴露出來嗎?

此外,我的理解是,您不再需要使用IPC的AIDL(http://developer.android.com/guide/topics/fundamentals/bound-services.html#Messenger),但您可以使用使者。我有點不清楚活動(或其他應用程序組件)如何綁定,然後調用我的活頁夾公開的特定方法。

任何樣品或只是直接設置我將不勝感激。

謝謝。

回答

2

我的問題是:我可以讓我的Binder實現調用方法在我的其他類中定義。

一般來說,當然,爲什麼不呢?

如果我在一個不同的類中定義這些方法(這從模塊化角度來看是有意義的),我可以簡單地通過我的活頁夾公開它們嗎?

原則上,是的,但它可能會取決於「那些方法」實際上是什麼。

而且,我的理解是,你不再需要使用AIDL IPC的(http://developer.android.com/guide/topics/fundamentals/bound-services.html#Messenger),而是你可以使用信使。

有多種方式可以在Android中使用服務進行IPC。 AIDL就是其中之一。將Messenger放在Intent中是另一個。它們不是相互矛盾的,還有其他的選擇。

我有點不清楚活動(或其他應用程序組件)如何綁定,然後調用我的活頁夾公開的特定方法。

他們稱bindService()ServiceConnection,然後使用通過ServiceConnectiononServiceConnected()方法提供的Binder

+1

馬克墨菲自己,哇!在您的三本書中一整天都在閱讀關於服務的內容。 從設計的角度來看,有一個單獨的信使類將消息發送到我的服務是否有意義?然後從我的活動中調用信使類的消息方法? – LuxuryMode 2011-04-13 13:50:01

+0

@豪華模式:「馬克墨菲自己,哇!」馬克墨菲?哪裏??哦,等等,你是指我。 :-)關於你對「單獨使者班」的討論,恐怕我不完全明白你的意思。 – CommonsWare 2011-04-13 22:53:02