Разница между таймером и будильником
Я немного запутался в Timer
и AlarmManager
, используемых в Android.
В чем главные различия между ними?
Они оба планируют выполнение задачи каждые А секунд. И каков основной сценарий, который они предпочитают использовать?
Например, для ситуации X используйте Timer
, но, с другой стороны, для ситуации Y используйте AlarmManager
.
Ответы
Ответ 1
A Timer
запустит поток, который будет отслеживать, когда начать свой код. Если устройство засыпает, так что таймер и ваш код не будут выполнены вовремя. С другой стороны, сигналы тревоги AlarmManager
являются уровнями ядра. В зависимости от того, как вы их регистрируете, вы можете запросить пробуждение устройства или выполнить следующий раз, когда что-то пробудит устройство. Тревога обычно предпочтительнее и использует меньше ресурсов.
Ответ 2
Таймер запускает сервис, который очень часто выполняет код, даже считая, что он фактически ничего не делает.
Alarmmanager, с другой стороны, запустит службу, которая работает в фоновом режиме всегда, это то, что вы хотите использовать, чтобы запланировать запуск вашего кода, когда ваше приложение не открыто.