我写了2个申请。 MyServiceApplication
和MyActivityApplication
。
在启动时,我启动MyService
作为远程服务运行。我希望MyActivityApplication
与其进行通信,但MyActivityApplication
无法访问MyServiceApplication
个类。我在网上看到的所有示例都通过以下方式将活动绑定到服务:
bindService(new Intent(Binding.this, MyService.class), mConnection, Context.BIND_AUTO_CREATE);
我的应用程序需要与MyService
进行通信。该代码基于Google的MessengerService
示例。
我之前提到过的问题是我尝试绑定的服务是由另一个应用程序启动的,其唯一目的是启动此服务。
有没有办法可以保持两个应用程序独立?我的想法是,我将拥有第二,第三和第四个应用程序,所有人都可以使用相同的服务进行通信。
答案 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);