Я пытаюсь реализовать простой виджет для дисплея на главном экране. Проблема, которую я испытываю, состоит в том, что onUpdate только называют однажды, когда я устанавливаю виджет. Конфигурация ниже.Примечание: Я не оставлю период обновления в 20 secs, поскольку я знаю, что это уничтожило бы батарею (просто тестирующий).
Конфигурация:
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="294dp"
android:minHeight="72dp"
android:updatePeriodMillis="20000"
android:initialLayout="@layout/my_custom_app_widget">`
</appwidget-provider>`
Явная выборка:
<receiver android:name="MyCustomWidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/my_custom_app_widget_info" />
</receiver>
Я наблюдаю следующее поведение, когда я устанавливаю виджет: В моем классе WidgetProvider на onReceive назван затем onEnabled затем onReceive, затем onUpdate.
После этого дисплеи виджета и onUpdate никогда не называют снова. Я также осматриваю настройки provder, когда onUpdate называют и все, что набор в XML выше (например, период обновления) корректен.
Пока у вас есть Android: UpdatePeriodMillis
, установленный на 20 секунд, минимальное фактическое время составляет 30 минут. Итак, если вы не ждали 30 минут, чтобы увидеть, есть ли обновление во время тестирования, вам нужно будет дольше дольше.