Частота обновления виджета Android 0, что это на самом деле означает?

Я нашел следующие части кода в виджете:

<appwidget-provider>
    android:updatePeriodMillis="0"
<appwidget-provider/>

теперь мой вопрос: что это значит с updatePeriodMillis, установленным в 0.
Я знаю, что он установлен для того, как часто виджет будет получать remoteview или другие. Итак, какое значение имеет установить его в 0.

3 ответов


согласно документации android:

на updatePeriodMillis атрибут определяет, как часто платформа виджетов приложений должна запрашивать обновление от AppWidgetProvider по телефону onUpdate() метод обратного вызова. Фактическое обновление не гарантируется точно по времени с этим значением, и мы предлагаем обновлять как можно реже-возможно, не более одного раза в час, чтобы сохранить батарею. Вы может также позволить пользователю настроить частоту в конфигурации-некоторые люди могут захотеть, чтобы биржевой тикер обновлялся каждые 15 минут или, возможно, только четыре раза в день.

Примечание: если устройство спит, когда пришло время для обновления (как определено updatePeriodMillis), то устройство проснется для выполнения обновления. Если вы не обновляете более одного раза в час, это, вероятно, не вызовет значительных проблем для срока службы батареи. Если, однако, вам нужно обновление чаще и / или вам не нужно обновлять, пока устройство спит, тогда вы можете вместо этого выполнять обновления на основе сигнала тревоги, который не разбудит устройство. Для этого установите будильник с намерением, которое получает ваш AppWidgetProvider, используя AlarmManager. Установите тип сигнала тревоги в ELAPSED_REALTIME или RTC, который будет доставлять сигнал только при пробуждении устройства. Затем установите updatePeriodMillis в ноль ("0").


когда вы устанавливаете updatePeriodMillis в 0, вы фактически отключаете период обновления для этого конкретного виджета. Означает, что это свойство больше не применимо к этому виджету.


согласно разработчикам Android Как часто, в миллисекундах, это AppWidget хочет быть обновленным. Менеджер AppWidget может ограничить частоту обновления AppWidget.

Это поле соответствует атрибуту android: updatePeriodMillis в файле метаданных AppWidget.

Примечание: обновления, запрошенные с updatePeriodMillis, не будут доставляться более одного раза каждые 30 минут.