Остановка службы виджета, когда она не используется - PullRequest
0 голосов
/ 03 июня 2010

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

Я установил Repeating на AlarmManager для обновления. Когда виджет удаляется (onDisabled ()), я вызываю .cancel () на сервисе, но сервис все еще отображается в «запущенных процессах» на андроиде, заставляя меня поверить, что я что-то делаю не так. Любое руководство?

Кроме того, я должен планировать свои обновления в onEnabled () или onUpdate ()? Похоже, что onUpdate не работает ни с чем, кроме первого виджета.

Спасибо за любую помощь, которую вы можете оказать!

1 Ответ

0 голосов
/ 03 июня 2010

Лучше всего останавливать службу после того, как она выполнила то, что ей нужно, вместо того, чтобы разрешить удаление виджета до его остановки.

Вы должны позволить ему выполнить обновление виджета, затем вызвать stopSelf (); Если у вас настроен AlarmManager для повторного запуска службы, это не должно быть проблемой.

По поводу обновления. Вы должны установить частоту обновления виджета в своем XML-файле widgetconfig. Начиная с Android 1.6, я считаю, что самое короткое обновление - 30 минут. (Если вам нужно сделать обновление чаще, тогда лучше всего будет использовать менеджер тревог.) OnUpdate пропустит массив идентификаторов виджетов, и вам нужно пройти через них, чтобы получить все ваши виджеты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...