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?

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); } } 
  • Animar ImageView dentro de WindowManager en un servicio de Android
  • Grabar sonido Y reproducir sonido modulado En Android?
  • Actualizar Android ListView en Widget
  • La llamada de servicio vuelve a la actividad en android
  • Icono de servicio persistente en la barra de notificaciones
  • Detener el servicio hasta que se pueda establecer conexión a Internet
  • IOS equivalente al servicio de Android?
  • No se puede crear el controlador dentro de hilo que no ha llamado Looper.prepare () en CountDownTimer
  • ¿Por qué NullPointerException ocurre con el uso de BillingService estándar?
  • Android - widget de actualización sobre el servicio con datos de la red. ¿El mejor enfoque?
  • Servicio de Android: onBind (Intención) y onUnbind (Intención) se llama una sola vez
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.