我开发了一个 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 中看到的内容?