Android: ¿Cómo repetir un servicio con AlarmManager cada 15 minutos, pero sólo se ejecuta de 8:00 AM a 18:00 PM?

Tengo que comprobar la actualización de los datos periódicamente, pero los datos sólo se actualizan durante el día, así que quiero que esta acción repetitiva se ejecute sólo en esa sección de tiempo para ahorrar batería y ancho de banda.

¿Que debería hacer?

One Solution collect form web for “Android: ¿Cómo repetir un servicio con AlarmManager cada 15 minutos, pero sólo se ejecuta de 8:00 AM a 18:00 PM?”

Si el servicio está hablando con la nube con solicitudes de HTTP get / post / whatever, entonces tenga en cuenta que una solución C2DM mejoraría la duración de la batería y que una solución SyncAdapter podría proporcionar algunos beneficios. (Recomiendo ver los videos de E / S de Google en ambos temas.)

El siguiente código hace algo cercano a lo que preguntaba originalmente.

public class MyUpdateService extends IntentService { public MyUpdateService() { super(MyUpdateService.class.getSimpleName()); } @Override protected void onHandleIntent(Intent intent) { // Do useful things. // After doing useful things... scheduleNextUpdate(); } private void scheduleNextUpdate() { Intent intent = new Intent(this, this.getClass()); PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); // The update frequency should often be user configurable. This is not. long currentTimeMillis = System.currentTimeMillis(); long nextUpdateTimeMillis = currentTimeMillis + 15 * DateUtils.MINUTE_IN_MILLIS; Time nextUpdateTime = new Time(); nextUpdateTime.set(nextUpdateTimeMillis); if (nextUpdateTime.hour < 8 || nextUpdateTime.hour >= 18) { nextUpdateTime.hour = 8; nextUpdateTime.minute = 0; nextUpdateTime.second = 0; nextUpdateTimeMillis = nextUpdateTime.toMillis(false) + DateUtils.DAY_IN_MILLIS; } AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); alarmManager.set(AlarmManager.RTC, nextUpdateTimeMillis, pendingIntent); } } 
  • Cómo ensayar un servicio de Android que depende de una conexión de red
  • Uso de Alarmmanager para iniciar un servicio en un momento específico
  • Servicio de Android: onBind (Intención) y onUnbind (Intención) se llama una sola vez
  • android - utiliza la cámara desde el servicio de fondo
  • Servicio de asignar un montón de memoria?
  • Android: mantener el servicio en ejecución cuando se mata la aplicación
  • Actividad de Android sin GUI
  • Android ¿cómo espero hasta que un servicio esté realmente conectado?
  • El punto de interrupción en servicio no funciona
  • Lanzar una excepción personalizada de un servicio a una actividad
  • Iniciar servicio desde la notificación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.