2

我在图书馆项目中有一项服务:

package com.example.project;
class MyService extends Service;

当我将它添加到应用程序时,我在应用程序清单中包含服务标签:

<manifest package="com.example.project.myapp1"...
    <application...
        <service
            android:name="com.example.project.MyService"
            android:exported="false" >            
            <intent-filter>
                <action android:name=".MYINTENT" />
            </intent-filter>
        </service>

我使用 startService 向服务发送命令,我没有绑定到服务,因为即使在活动被销毁并且不绑定更简单之后,我也需要服务继续运行。它工作正常。

所以我使用相同的库和服务创建了另一个应用程序:

<manifest package="com.example.project.myapp2"...
    <application...
        <service
            android:name="com.example.project.MyService"
            android:exported="false" >            
            <intent-filter>
                <action android:name=".MYINTENT" />
            </intent-filter>
        </service>

我不能更改服务名称,因为服务类是相同的,对吧?

问题是第二个应用程序尝试从第一个应用程序而不是它自己的服务调用服务。

那么如何隔离使用相同类实现但在不同应用程序中运行的服务呢?

4

1 回答 1

1

您可以更改意图过滤器名称之类的.MYINTENT2东西,然后,您使用这个独特的新意图操作启动第二个服务。

于 2013-05-07T17:41:37.200 回答