Intereting Posts
Где установлен пакет приложений для Android на телефоне Тайм-аут активности для HistoryRecord? Уведомление о статусе в телефонной трубке Android Как установить таймер в android Программно установить высоту на LayoutParams как независимые от плотности пиксели Как передать объект другому мероприятию? Java.lang.IllegalArgumentException: для id 0x1020002 (android: id / content) для фрагмента нет SyncAdapter: создана учетная запись, requestSync ОК, но setSyncAutomatically не работает Как подключить javadoc или источники к банкам в папке libs? Аутентификация веб-API ASP.NET Платформа Google Android финансово интересна? Как создать одно из предпочтений с помощью EditTextPreference и Togglebutton? Добавлено facebook SDK теперь не может возобновить действие силы закрыть Реализация функций USSD. Связывание службы с PhoneUtils без перезапуска телефона при каждом обновлении Universal-Image-Loader: неправильные растровые изображения прикреплены к ImageView

Часто обновление виджета (чаще, чем позволяет updatePeriodMillis)

Я хочу, чтобы виджет показывал обратный отсчет для инициированного пользователем отслеживания вылета автобуса. Я хочу обновить виджет каждую минуту или около того, начиная с того момента, когда пользователь инициирует отслеживание, когда автобус ушел (то есть время истекает).

Этот виджет нужно обновлять чаще, чем позволяет updatePeriodMillis , который каждые 30 секунд. Я считаю, что раз в минуту.

Будучи новичком в программировании на Android, я могу придумать несколько способов сделать это, но я, вероятно, в конечном итоге сделаю это так, чтобы потреблять слишком много батареи и т. Д., Поэтому я ищу некоторые идеи от более опытных разработчиков Android.

Как начать таймер? Как я могу получить доступ к экземпляру виджета из времени выполнения моих приложений? И так далее.

Solutions Collecting From Web of "Часто обновление виджета (чаще, чем позволяет updatePeriodMillis)"

Я зарегистрировал бы будильник, чтобы начать мой сервис каждые 1 минуту, и служба обновит интерфейс виджета

 final Intent intent = new Intent(context, UpdateService.class); final PendingIntent pending = PendingIntent.getService(context, 0, intent, 0); final AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); alarm.cancel(pending); long interval = 1000*60; alarm.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(),interval, pending); 

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