programada - proyecto de alarma en android studio
El administrador de alarmas no dispara alarmas en el momento exacto en Android (1)
Programé la alarma usando la clase Calendar como se muestra a continuación
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY,1);
cal.getTimeInMillis();
cal.set(Calendar.MINUTE,05);
long TriggerMillis = cal.getTimeInMillis();
AlarmManager aManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
aManager.set(AlarmManager.RTC_WAKEUP, TriggerMillis,pIntent);
donde pIntent es un intento pendiente de continuar cuando se dispara la alarma.
El evento se desencadena con unos segundos de retraso. ¿Hay algún problema al usar la clase Calendar para esta tarea? ¿Alguna sugerencia?
TIA ...
Tienes dos problemas:
No es confiable utilizar una alarma
_WAKEUP
con un servicio directamente. Los únicos patrones confiables incluyenWakefulBroadcastReceiver
, miWakefulIntentService
, o algoPendingIntent
, dondePendingIntent
será paraBroadcastReceiver
.Si su
android:targetSdkVersion
tiene 19 o más y se está ejecutando en un dispositivo API Level 19+,set()
es inexacto. Idealmente, permite que sea inexacto, o tal vez usesetWindow()
para controlar que tan apagado estará, para minimizar el golpe de poder de su evento de alarma. Si tiene que ocurrir en un momento preciso, deberá usarsetExact()
. Dado quesetWindow()
ysetExact()
son nuevos en el Nivel 19 de la API, deberá recurrir aset()
en dispositivos más antiguos, examinandoBuild.VERSION.SDK_INT
y bifurcando en consecuencia.