Eventos de alarma Android se retrasan

He desarrollado mi aplicación de alarma Android que necesitan algo cada hora (como 1 pm, 2 pm, 3 pm, 4 pm, 5 pm, 6 pm etc).

Ahora estoy usando alarmManager para que yo consiga un evento wideCast cada hora. Pero a veces el evento se retrasa.

AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); Log.d(Constants.APP_TAG, "setting beep alarm"); PendingIntent pendingIntent = PendingIntent.getBroadcast( context, 0, new Intent("com.mindedges.beephourly.intent.action.NEW_HOUR"),PendingIntent.FLAG_UPDATE_CURRENT ); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, AlarmSheduleHelper.getImmediateNextHour().getTimeInMillis(),AlarmManager.INTERVAL_HOUR, pendingIntent); 

¿Cómo puedo asegurarme de que recibo el evento de difusión exactamente a tiempo.

PS: Se demora en algunos teléfonos específicos / versión de anroid

En Android 6.0 Marshmallow, Google introdujo el modo "Doze".

Obtenga más información al respecto aquí: Optimización para Doze y aplicación en espera

Y / o mira aquí: Android Marshmallow 6.0: Introducción al modo Doze

En su caso, Google recomienda utilizar setAndAllowWhileIdle que obligan al teléfono a omitir el modo Doze en su lugar (y setExactAndAllowWhileIdle lugar de setExact .)

¡NÓTESE BIEN! Parece que no hay ningún análogo para setRepeating , así que tienes que programar la próxima repetición "manualmente" con setExactAndAllowWhileIdle , uno por uno.

Para los dispositivos con Android 4.4 KitKat y superiores – considere utilizar setExact lugar del set antiguo, ya que el sistema operativo intenta cambiar las alarmas para minimizar los despertares y el uso de la batería.

Puede haber más puntos a tener en cuenta – por ejemplo, algunos fabricantes de equipos pueden tener sus propias utilidades preinstaladas con el fin de ahorrar batería, pero al menos debe cubrir la población de Android y, presumiblemente, la mayoría de los dispositivos populares.

  • Lista de selector de favoritos de Android con la opción predeterminada seleccionada
  • AlarmManager no se repite
  • Administrador de alarmas - Programación de varios eventos no repetitivos
  • ¿Cómo cancelar la tarea de repetición en el Administrador de alarmas?
  • Configurar la alarma en la hora y fecha seleccionadas
  • Android: ¿por qué se detuvo la notificación de alarma después de reiniciar el sistema
  • Repetir alarmas cada lunes en Android usig AlarmManager / BroadcastReceiver
  • ¿Alarm Manager persiste incluso después del reinicio?
  • Android establece varias alarmas
  • ¿Utilizar un receptor de difusión para iniciar AlarmManager en Android?
  • Cómo configurar Alarma para días laborables en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.