1

我开发了一个 Android 服务,我使用以下代码自动启动:

AndroidManifest.xml:

    <!-- Declare Boot Completed Broadcast Receiver, For Service Auto-Start on Boot -->
    <receiver android:name=".utils.os.ServiceAutoStart">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>

服务自动启动.java:

public class ServiceAutoStart extends BroadcastReceiver
{

    @Override
    public void onReceive(Context context, Intent intent)
    {
        // Start Patch Service On Boot
        context.startService(new Intent(context, PatchService.class));
    }
}

此外,我有一个“查看器”,它使用 startService() 和 bindService() 启动并绑定到服务。在大多数情况下,一切都按预期工作。最近我注意到,如果我在我的 Android 设备启动后立即打开我的“查看器”应用程序,我似乎创建了 2 个服务实例(见下图)。我认为不可能创建同一服务的 2 个实例。这里发生了什么?我是否误解了我在 DDMS 中看到的内容?

在此处输入图像描述

4

1 回答 1

1

我似乎创建了 2 个服务实例(见下图)

如果您指的是左侧的可调试进程的半编辑列表,它们是两个独立的应用程序。一个是com.XXXX.service,一个是com.XXXX.serviceremote

我认为不可能创建同一服务的 2 个实例

它不是。它们是单独应用程序中单独服务的单独实例。

于 2013-07-15T20:21:03.813 回答