我开发了一个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>
ServiceAutoStart.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));
}
}
此外,我有一个“Viewer”,它使用startService()和bindService()启动并绑定到服务。在大多数情况下,一切都按预期工作。最近我注意到,如果我在Android设备启动后立即打开“Viewer”应用程序,我似乎创建了2个服务实例(见下图)。我认为不可能创建同一服务的2个实例。这里发生了什么?我是否误解了我在DDMS中看到的内容?
答案 0 :(得分:1)
我似乎创建了2个服务实例(见下图)
如果您在左侧引用可编程流程的半编辑列表,则它们是两个单独的应用。一个是com.XXXX.service
,一个是com.XXXX.serviceremote
。
我认为不可能创建同一服务的2个实例
不是。它们是单独应用程序中单独服务的单独实例。