Я хочу виджет, показывающий обратный отсчет для пользователя, инициируемого, отслеживая отъезда шины. Я хочу обновить виджет каждую минуту или так, от того, когда пользователь инициирует отслеживание к тому, когда шина отбыла (т.е. время заканчивается).
Этот виджет должен обновляться более часто, чем какой updatePeriodMillis
позволяет, который является каждые 30 минут. Я считаю об однажды минуте.
Будучи плохо знакомым с программированием Android, я могу думать о нескольких способах сделать это, но я, вероятно, закончил бы тем, что делал его способом, который использует слишком много батареи и т.д., таким образом, я ищу некоторое понимание от более опытных разработчиков Android.
Как я запускаю таймер? Как я могу получить доступ к экземпляру виджета от своего времени выполнения приложений? И так далее.
Я регистрировал будильник для запуска службы каждые 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 не будет разбудить устройство, если оно спит, чтобы срок службы батареи не пострадал.