Как обновить виджеты из сервиса? - PullRequest
14 голосов
/ 15 мая 2010

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

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

1 Ответ

19 голосов
/ 15 мая 2010

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

AppWidgetManager mgr=AppWidgetManager.getInstance(this);

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...