Разница между setAndAllowWhileIdle и setExactAndAllowWhileIdle
Какая разница между AlarmManager.setAndAllowWhileIdle()
а также AlarmManager.setExactAndAllowWhileIdle()
? Как они оба влияют на режим ожидания, введенный в API Android 6.0 (Marshmallow)?
1 ответ
Обратитесь к документации AlarmManager
:
Примечание. Начиная с API 19 (KITKAT), выдача аварийных сигналов является неточной: ОС будет сдвигать аварийные сигналы, чтобы минимизировать пробуждения и использование батареи. Существуют новые API для поддержки приложений, которые требуют строгих гарантий доставки; см. setWindow(int, long, long, PendingIntent) и setExact(int, long, PendingIntent). Приложения, для которых targetSdkVersion более ранний, чем API 19, будут по-прежнему видеть предыдущее поведение, при котором все тревоги доставляются точно по запросу.
Действительно, оба метода, которые вы упомянули, указывают, что они ведут себя как их аналоги без AndAllowWhileIdle (set
а также setExact
). Таким образом, один из них доставит сигнал тревоги в точное время, а другой не будет точным.