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

问题描述 投票:1回答:2

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

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

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

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

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

java android android-service
2个回答
1
投票

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


0
投票

更新: 此解决方案和代码示例在编写于2015年时有效 请查找与此相关的其他解决方案。

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

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);
© www.soinside.com 2019 - 2024. All rights reserved.