AlarmManager dispara alarmas en el momento equivocado

Manejé todo bien para crear un servicio de notificación utilizado para disparar una notificación como resultado de una alarma. Desafortunadamente, configurar la alarma usando AlarmManager no funciona bien. Se dispara varios minutos más tarde (no exactamente horas, lo que indicaría un problema de zona horaria). El período recurrente es de 1 semana, así que usé la constante INTERVAL_DAY y la multipliqué por 7. Para asegurarme de que un PendingIntent no reemplace al otro, paso el dayOfWeek como segundo parámetro a PendingIntent.getService (). Verifico la exactitud del tiempo para que la alarma se active al iniciar sesión:

Log.d(TAG, "next alarm " + df.format(cal.getTime()));

¿Realmente no hay manera de enumerar todas las alarmas configuradas, al menos las de mi propia aplicación? Creo que esta es la única manera de rastrear el error.

Mi código:

cal.setTimeInMillis(System.currentTimeMillis());
cal.add(Calendar.DATE, 1);
cal.set(Calendar.HOUR_OF_DAY, hour);
cal.set(Calendar.MINUTE, minute);
Log.d(TAG, "next alarm " + df.format(cal.getTime()));
Intent showNotificationIntent = new Intent(context, NotificationService.class);
dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
alarmIntent = PendingIntent.getService(context, dayOfWeek, showNotificationIntent, 0);
getAlarmManager(context).setInexactRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
    INTERVAL_WEEK, alarmIntent);

Quiero ofrecer tener una alarma todos los días, pero en varias ocasiones, que el usuario puede configurar. Así que uso hasta 7 alarmas, que deberían dispararse semanalmente.

Incluso después de leer las numerosas respuestas a preguntas similares (no tengo la intención de crear una pregunta duplicada), no he podido encontrar el problema.

Respuestas a la pregunta(2)

Su respuesta a la pregunta