Обновление виджета для домашнего экрана Android по запросу из приложения

Виджеты для домашнего экрана устройства Android могут обновляться не только самостоятельно, но и по запросу из приложения. Например, если изменились настройки или данные обновлены службой.

Пример обновления виджета службой уже был рассмотрен статье посвящённой обновлению виджетов (пример с AlarmManager). Приведённый механизм является общим для всех случаев. Однако требует некоторых дополнительных пояснений.

Для обновления виджета извне (Activity, службы) его класс обязательно должен включать специальный статический метод.

Самостоятельное обновление виджета возможно и при помощи события onUpdate.

В свою очередь для того чтобы указанный метод можно было вызвать из внешнего источника необходимо выполнить ряд предварительных шагов. А, именно получить объект класса AppWidgetManager и идентификатор виджета.

Рассмотрим их выполнение на примере Activity.

Объект класса AppWidgetManager на самом деле можно легко получить из любого объекта приложения через контекст.

Для получения идентификатора виджета вначале требуется получить массив идентификаторов. Сделать это можно с помощью полученного ранее объекта AppWidgetManager.

Метод getAppWidgetIds принимает в качестве параметра объект ComponentName. Для создания этого объекта необходимо передать его конструктору имя пакета приложения и имя класса виджета

На этом подготовительные действия завершены. Можно обновлять виджет.

Таким образом, можно обновить виджет домашнего экрана из любого компонента приложения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *