ОК, поэтому я провел некоторое исследование, и, как представляется, консенсус заключается в том, что вы не можете программно обновлять android:updatePeriodMillis
.Изменение андроида: updatePeriodMillis программно
Похоже, что вам нужно использовать AlarmManager
, что похоже на использование sledghammer для взлома гайки ... странно, что API не просто позволяет вам обновлять ядро updatePeriodMillis
.
Всегда есть небольшой риск, полагаясь на то, что там есть в Интернете, поскольку API имеют тенденцию развиваться, а старые ответы больше не актуальны.
Так что я просто проверяю, что это все еще так. Например, руководство по адресу http://developer.android.com/guide/topics/appwidgets/index.html хотя бы намекает, что оно имеет значение, возможно, изменить период обновления AppWidgetProvider
. При обсуждении updatePeriodMillis
он говорит:
«Вы могли бы также позволить пользователю регулировать частоту в конфигурации, некоторые люди могут хотите тикер обновлять каждые 15 минут, или, может быть, только четыре раза в день.»
И затем продолжает говорить об использовании AlarmManager
но, видимо, только по отношению к избегая пробуждение устройства, а не изменения периода обновления.
Спасибо за любую помощь по этому вопросу.
Хм, ОК спасибо. Странно, что Google признает в своем собственном руководстве, что разработчик вполне может подумать о том, чтобы позволить пользователю обновлять интервал, и все же не предоставлять метод для этого! Вы должны отказаться от основного метода и принять совершенно другое решение или применить уродливый kludge. Не должно быть так сложно сделать что-то настолько простое. Выполняя только некоторые работы, каждое обновление N кажется разумным путем. В любом случае, посмотрите в AlarmManager. – drmrbrewer