Ответ 1
Я хочу обновить свой виджет каждый раз, когда он будет изменен.
Круто!
Я понял, что это сделано в
onAppWidgetOptionsChanged()
Более точно, если у вас есть правильные действия на вашем устройстве <intent-filter>
, на устройствах Android 4.1+, вы узнаете об изменениях размера с помощью onAppWidgetOptionsChanged()
.
Но я не могу узнать, как обновить виджет в нем.
Вы обновляете его так же, как вы его обновляете в onUpdate()
. Вызовите updateAppWidget()
на AppWidgetManager
с соответствующим RemoteViews
.
Я попытался перерисовать виджет, вызвав все, что я положил в onUpdate(), но он не работает.
"он не работает" не является особенно эффективным описанием ваших симптомов.
Как я могу использовать пакет?
Для a Bundle
с именем newOptions
вы можете узнать свой новый диапазон размеров с помощью:
newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH)
newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH)
newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT)
newOptions.getInt(AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT)
Например, этот примерный проект содержит AppWidgetProvider
, который просто вставляет эти значения в строку и использует это для обновления TextView
, Результат выглядит следующим образом: