如何在android上的应用程序之间进行通信

时间:2010-12-05 21:49:09

标签: java android service aidl

我正在尝试在Android上运行作为服务运行的应用程序,其他应用程序将分发,需要与之通信。

它已作为服务实现,并且正在运行的客户端应用程序在同一个应用程序中打包时可以正常工作。

然而,在http://developer.android.com/guide/developing/tools/aidl.html之后,我在为客户端应用程序(尤其是行

)工作时遇到了问题

“在ServiceConnection.onServiceConnected()的实现中,您将收到一个IBinder实例(称为服务)。调用YourInterfaceName.Stub.asInterface((IBinder)服务)将返回的参数强制转换为YourInterface类型。”

由于应用程序是单独分发的,因此我无法访问YourInterfaceName并将其复制到客户端应用程序,这肯定是“错误的方式”

如果有人可以提供指向文档/书籍/源代码的指针,那将非常有用,谢谢

(原谅我名字中的讽刺,有点像个笑话)

3 个答案:

答案 0 :(得分:2)

“Pro Android 2”这本书在AIDL上有一个不错的例子......

答案 1 :(得分:0)

应用程序需要确切地相互通信的是什么?

如果是数据,那么您可以查看ContentProvider

您还可以通过Intent.putExtra分享信息。

答案 2 :(得分:0)

您必须将执行Binder IPC客户端的代码部分复制(或以其他方式包含或重写具有类似功能)到客户端项目中。