2010-07-22 11 views
13

Quiero un widget que muestra una cuenta regresiva para un usuario iniciado el seguimiento de una salida de bus. Quiero actualizar el widget cada minuto, aproximadamente, desde que el usuario inicia el seguimiento hasta que el bus se ha ido (es decir, se acaba el tiempo).Actualización frecuente de widgets (con más frecuencia de lo que updatePeriodMillis permite)

Este widget debe actualizarse con más frecuencia que lo que permite updatePeriodMillis, que es cada 30 segundos. Creo que una vez por minuto.

Siendo nuevo en la programación de Android, puedo pensar en algunas maneras de hacerlo, pero probablemente terminaré haciéndolo de una manera que consume demasiada batería, etc., así que estoy buscando algunas ideas de más experimentados desarrolladores de Android.

¿Cómo comienzo el temporizador? ¿Cómo puedo acceder a la instancia del widget desde el tiempo de ejecución de mis aplicaciones? Y así.

+8

FYI, la frecuencia de actualización 'updatePeriodMillis' es de 30 minutos **, no de segundos. –

Respuesta

21

que registraría una alarma para iniciar mi servicio cada 1 minuto y el servicio sería actualizar la interfaz de usuario widget de

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 no WAKR el dispositivo si está durmiendo a la vida de la batería no deberían verse afectados.

+4

"Registraría una alarma" - ¿A dónde va ese código? ¿Dónde registras el 'AlarmManager'? – jjnguy

+1

@jjnguy El AlarmManager no necesita ser registrado, ya que se recibe de 'context.getSystemService'. –

+2

Esto no es útil en absoluto! ¿A dónde va todo este código? Para un principiante que usa el widget, no hay nada de eso para hacer ... – Virthuss

Cuestiones relacionadas