2010-03-25 3 views
27

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

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); 
    } 

ответ

48

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

+0

Спасибо @CommonsWare Я поддержал ваш вопрос, каждый раз, когда я вижу ваш ответ, его легче понять, и я нашел полезным и ответом на ваш ответ :) – blackHawk

14

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

Смежные вопросы