В документации по Android (https://developer.android.com/reference/android/app/AlarmManager#ELAPSED_REALTIME) говорится, что ELAPSED_REALTIME дает «Время будильника в SystemClock.elapsedRealtime() (время с момента загрузки, включая спящий режим)».
Но целочисленное значение, возвращаемое AlarmManager.ELAPSED_REALTIME, всегда равно 3.
Является ли ELAPSED_REALTIME просто постоянным значением, которое всегда остается равным 3?
Да! Это константа, в предоставленной вами ссылке на документы вы можете увидеть постоянное значение:
Constant Value: 3 (0x00000003)
API Android часто используют эти постоянные значения в своих API. Вам нужно вызвать API так:
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME, //other stuff);
В этом случае ELAPSED_REALTIME сообщит AlarmManager, какой тип сигнализации использовать. Под капотом это будет просто целое число 3.
Чтобы вы лучше это поняли, вот источник:
https://github.com/aosp-mirror/platform_frameworks_base/blob/master/core/java/android/app/AlarmManager.java#L437, там вы можете увидеть @AlarmType int type, который будет использоваться для установки тревоги.
Также см. Следующее свойство:
public static final int ELAPSED_REALTIME = 3;
3 - постоянное значение
AlarmManager.ELAPSED_REALTIME, вы должны установить этот тип при настройкеAlarmManager.