在Binder中调用方法

时间:2011-04-13 02:00:27

标签: android

我正在尝试使用我的Binder子类公开方法。我要把我的服务归还Binder等等......

我的问题是:我可以在其他类中定义我的Binder实现调用方法吗?例如,我正在使用XMPP连接,登录和发送聊天消息。如果我在不同的类中定义这些方法(从模块化的角度来看是有意义的),我可以通过我的Binder简单地公开它们吗?

另外,我的理解是你不再需要使用AIDL for IPC(http://developer.android.com/guide/topics/fundamentals/bound-services.html#Messenger),而是你可以使用信使。关于活动(或其他应用程序组件)如何绑定然后调用我的Binder公开的特定方法,我有点不清楚。

任何样品或只是让我直截了当都会非常感激。

感谢。

1 个答案:

答案 0 :(得分:2)

  

我的问题是:我可以在其他类中定义我的Binder实现调用方法。

一般来说,确定,为什么不呢?

  

如果我在不同的类中定义这些方法(从模块化角度来看是有意义的),我可以通过我的Binder简单地公开它们吗?

原则上,是的,但它可能取决于“那些方法”实际上是什么。

  

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

有多种方法可以在Android中使用服务进行IPC。 AIDL就是其中之一。将Messenger放在Intent个额外内容是另一个。它们不是相互矛盾的,还有其他选择。

  

关于活动(或其他应用程序组件)如何绑定然后调用我的Binder公开的特定方法,我有点不清楚。

他们使用bindService()致电ServiceConnection,然后使用Binder的{​​{1}}方法提供的ServiceConnection