开发者

Frequently updating widgets (more frequently than what updatePeriodMillis allows)

开发者 https://www.devze.com 2023-01-08 23:20 出处:网络
I want a widget showing a countdown for a user initiated tracking of a bus departure. I want to update the widget every minute or so, from when the user initiates the tracking to when the bus has depa

I want a widget showing a countdown for a user initiated tracking of a bus departure. I want to update the widget every minute or so, from when the user initiates the tracking to when the bus has departed (i.e. the time runs out).

T开发者_如何学JAVAhis widget needs to be updated more frequently than what updatePeriodMillis allows, which is every 30 minutes. I reckon about once a minute.

Being new to Android programming, I can think of a few ways to do this, but I would probably end up doing it in a way that consumes way too much battery etc, so I'm looking for some insights from more experienced Android developers.

How do I start the timer? How can I access the widget instance from my applications run-time? And so on.


I would register an alarm to start my service every 1 minute and the service would update the widget UI

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 will not wakr the device if it's sleeping to battery life should not be affected.

0

精彩评论

暂无评论...
验证码 换一张
取 消