Estoy siguiendo el código de muestra para enviar una notificación de actualización cada 10'segundos. El código sigue y está en un UpdateService
para un AppWidgetProvider
. Si pongo un Thread.sleep(10*1000);
puedo ver el comportamiento esperado de mi ciclo de servicio. Obviamente tengo algo fundamentalmente erróneo que se está disparando de inmediato. Se supone que es un PendingIntent
de una alarma que transmitirá la actualización a mi oyente.¿Por qué mi administrador de alarmas android dispara instantáneamente?
long nextUpdate = 10*1000;
Log.d(TAG, "Requesting next update in " + nextUpdate + " msec.");
Intent updateIntent = new Intent(ACTION_UPDATE_ALL);
updateIntent.setClass(this, UpdateService.class);
PendingIntent pendingIntent = PendingIntent.getService(this, 0, updateIntent, 0);
// Schedule alarm, and force the device awake for this update
AlarmManager alarmManager = (AlarmManager)getBaseContext().getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(),
nextUpdate, pendingIntent);
Gracias a ambos +1 de mi parte por la respuesta rápida y precisa. En al siguiente problema. Irónicamente, traté de hacer un segundo comentario demasiado pronto (<15 segundos), así que recibí una notificación de temporizador pop de SO. :)) – mobibob
lo estoy haciendo así 'amAlarm1.setInexactRepeating (AlarmManager.RTC_WAKEUP, 120000, AlarmManager.INTERVAL_DAY, alarm1Pending); todavía intento pendiente está disparando al instante ?? ' –
@MuhammadBabar: Realmente deberías publicar una nueva pregunta. Pero para responder a su pregunta de todos modos, está pasando '120000' para desencadenarAtTime, que corresponde a' Vie, 02 Ene 1970 09:20:00 GMT' – Falmarri