¿Por qué Alarm Manager me alerta antes de la hora que configuré en Android?

¿Pusiste una alarma inexacta? inexacto es el recomendado de Android. Vea el texto a continuación (sobre cómo usar la alarma exacta que sería mucho más precisa, pero use solo si debe hacerlo):

Nota: El Administrador de alarmas está diseñado para casos en los que desea que su código de aplicación se ejecute en un momento específico, incluso si su aplicación no se está ejecutando actualmente. Para las operaciones normales de temporización (ticks, tiempos de espera, etc.) es más fácil y mucho más eficiente usar Handler .

Nota: Comenzar con la entrega de alarmas API 19 (KITKAT) es inexacta: el sistema operativo activará las alarmas para minimizar las activaciones y el uso de la batería. Existen nuevas API para admitir aplicaciones que necesitan estrictas garantías de entrega; ver setWindow (int, long, long, PendingIntent) y setExact (int, long, PendingIntent). Las aplicaciones cuyo targetSdkVersion sea ​​anterior a API 19 continuarán viendo el comportamiento anterior en el que todas las alarmas se entregan exactamente cuando se solicitan.

Vea el siguiente enlace para más detalles:

AlarmManager | Desarrolladores de Android

En realidad, esto no tiene que suceder en Android si incluso configuro alaram para dispositivos móviles, solo me despertará en el momento en que lo configuré. compruebe que su teléfono no tenga otra configuración de alarma previa creada.

Y en realidad es bueno si Alaram puede alertarlo antes de un tiempo determinado de lo que le ayudará a administrar el tiempo en la mañana más fácilmente.