AlarmManager с ожидающими намерениями обновить виджет - PullRequest
0 голосов
/ 03 сентября 2010

У меня есть требование, когда мне нужно обновлять мой виджет каждые 15 секунд.Существует метод, называемый android:updatePeriodMillis, но, похоже, он срабатывает только через 30 минут.

Я использовал , обновляя мой виджет с помощью AlarmManager.Виджет обновляет , но проблема в том, что он замедляет работу устройства.Когда AlarmManager моего приложения работает в фоновом режиме, я мог видеть большую задержку на устройстве для ответа на пользовательские события. Разумно ли иметь виджет, который часто обновляется?

Это рекомендуемый подход для обновления виджета .. или любой может предоставить мне несколько примеров кодалюбое приложение, где обновление происходит часто?

Почему для android:updatePeriodMillis установлено значение 30 минут ?.Это потому, что Android не хочет, чтобы мы обновляли виджет до этого интервала времени?

1 Ответ

1 голос
/ 03 сентября 2010

У меня есть требование, когда мне нужно обновлять мой виджет каждые 15 секунд.

Это будет иметь последствия для вашей батареи.Пожалуйста, сделайте это настраиваемым.

Существует метод с именем android: updatePeriodMillis, но, похоже, он срабатывает только через 30 минут.

Это атрибут XML, а неметод, и да, он имеет минимум 30 минут из-за жалоб на время автономной работы от пользователей, которые устанавливают виджеты приложений, которые обновляются, скажем, каждые 15 секунд.

Когда AlarmManager моего приложенияработает в фоновом режиме. Я мог видеть большую задержку на устройстве, реагирующую на пользовательские события.

Поместите трудоемкую работу в IntentService, вызванную сигналом тревоги.Если вы выполняете свою работу непосредственно в методе BroadcastReceiver onReceive(), он работает с приоритетом переднего плана и будет оказывать большее влияние на загрузку процессора.Кроме того, он связывает основной поток приложения вашего процесса, и поэтому все выполняемые вами действия будут зависать, пока BroadcastReceiver выполняет свою работу.

Разумно ли иметь виджет, который обновляетчасто?

ИМХО, нет, но если вы сделаете его настраиваемым, то пользователь сможет выбрать, какое значение он считает подходящим.

...