AppWidgetProvider (Виджет) со службой Android - PullRequest
1 голос
/ 26 сентября 2011

Почему почти во всех уроках или примерах люди так делают:

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) {
...
    context.startService(resumeIntent);
super.onUpdate(context, appWidgetManager, appWidgetIds);
}

Не означает ли это, что новая служба запускается при каждом выполнении обновления?Это лучшее решение?Или лучше сделать это с отправкой трансляций?И не лучше ли

context.startService(resumeIntent);

сделать в методе onEnabled?

1 Ответ

2 голосов
/ 26 сентября 2011

Нет, служба запускается ТОЛЬКО если она еще не запущена: если она уже запущена, ей отправляется новое намерение в onStartCommand, и она может обработать это соответствующим образом.

Что касается использования этого или использования onEnabled, то преимущество в том, что служба перезапускается каждый раз, когда она не работает: onEnabled запустит службу, но если служба будет убита для любого причина, по которой вы не можете перезапустить его для вас.

...