Создает ли startService() новый экземпляр службы или использует существующий?

Создает ли startService() новый экземпляр службы или использует существующий? Например, в следующем коде создается ли два экземпляра UpdateService или один экземпляр UpdateService? Спасибо.

    int[] appWidgetIds = new int[] {1, 2};  
    for (int appWidgetId : appWidgetIds) {
        Intent intent = new Intent(context, UpdateService.class);
        intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
        context.startService(intent);
    }

Ответ 1

Если служба уже запущена, она не запускается как вторая копия, но onStart() по-прежнему вызывается в существующем экземпляре. Услуги - это естественные синглтоны - есть только 0 или 1 копия службы в действии.

Ответ 2

Теперь метод onStart устарел, вместо этого используйте onStartCommand.