Jaime, miembro de este gran equipo, nos hizo el favor de escribir esta crónica porque domina perfectamente dicho tema.
Solución:
Ha determinado la cantidad de tiempo (intervalo) para ejecutar un fragmento de código, es mejor usar AlarmManager porque es más eficiente energéticamente. Si su aplicación necesita escuchar algún tipo de evento, entonces Service es lo que necesita.
public static void registerAlarm(Context context)
Intent i = new Intent(context, YOURBROADCASTRECIEVER.class);
PendingIntent sender = PendingIntent.getBroadcast(context,REQUEST_CODE, i, 0);
// We want the alarm to go off 3 seconds from now.
long firstTime = SystemClock.elapsedRealtime();
firstTime += 3 * 1000;//start 3 seconds after first register.
// Schedule the alarm!
AlarmManager am = (AlarmManager) context
.getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,
600000, sender);//10min interval
¿Administrador de alarmas (servicio del sistema) frente a servicio remoto con implementación de alarma interna (proceso separado)?
Alarm Manager es tu elección, porque ya tiene lo que necesitas, solo tienes que configurar los intervalos de alarma
Si crees que te ha sido provechoso nuestro artículo, sería de mucha ayuda si lo compartieras con otros seniors y nos ayudes a dar difusión a nuestro contenido.