Android - 从其他应用绑定到服务

时间:2012-04-03 06:46:13

标签: java android android-service

我写了2个申请。 MyServiceApplicationMyActivityApplication。 在启动时,我启动MyService作为远程服务运行。我希望MyActivityApplication与其进行通信,但MyActivityApplication无法访问MyServiceApplication个类。我在网上看到的所有示例都通过以下方式将活动绑定到服务:

bindService(new Intent(Binding.this, MyService.class), mConnection, Context.BIND_AUTO_CREATE);

我的应用程序需要与MyService进行通信。该代码基于Google的MessengerService示例。

我之前提到过的问题是我尝试绑定的服务是由另一个应用程序启动的,其唯一目的是启动此服务。

有没有办法可以保持两个应用程序独立?我的想法是,我将拥有第二,第三和第四个应用程序,所有人都可以使用相同的服务进行通信。

2 个答案:

答案 0 :(得分:1)

您的服务和应用程序之间应该有一个共享库,用于定义用于与绑定服务通信的接口。

答案 1 :(得分:0)

<强>更新
此解决方案和代码示例在撰写时有效:2015年 请查找与当天相关的其他解决方案。

原文回答:
您可以使用特定操作为服务定义intent-filer,并使用分配给此操作的意图绑定到此服务。

MyServiceApplication:

<service android:name=".MyService">
      <intent-filter>
        <action android:name="com.some.action.NAME" />
      </intent-filter>
</service>

MyActivityApplication:

bindService(new Intent("com.some.action.NAME"), serviceConnection, Context.BIND_AUTO_CREATE);