Как обновить виджеты из службы?

У меня есть фоновая служба, которая может быть настроена для выполнения некоторых действий каждые x минут. Я хочу реализовать виджет, который обновляется каждый раз, когда моя служба выполняет это действие. Тем не менее, я не могу получить метод onUpdate моего AppWidgetProvider, вызванный каким-либо образом, за исключением добавления виджета на рабочий стол.

Я попытался отправить объекты APPWIDGET_UPDATE, но onUpdate не получил вызов, хотя AppWidgetProvider действительно получил намерение с момента вызова метода onReceive. Есть ли способ инициировать обновления виджета из службы?

Ответы

Ответ 1

Просто сделайте себе RemoteViews и обновите виджеты непосредственно в Service. Вы получите AppWidgetManager через:

AppWidgetManager mgr=AppWidgetManager.getInstance(this);

Все остальное как обычно.

Примечание. -. Если вы действительно хотите заставить существующую AppWidgetProvider выполнять эту работу, отправьте трансляцию с помощью специального действия на ваш компонент и вызовите onUpdate() самостоятельно из onReceive() когда вы его получите.