Я выполняю сервис, который будет выполнять следующие действия:
При запуске он запускает новый поток, в котором он сначала запланирует задание с помощью 'Z'интервал, который отправит все RSSI, сохраненные в Realm
Затем он начнет сканирование Bluetooth в течение 'X' секунд каждые 'N' секунд ихранить внутри БД Realm все найденные BLE-теги.Остановка и запуск сканирования выполняются с помощью Обработчик .
Но у меня есть вопрос о том, какой метод лучше всего подходит для этого:
Используйте FOREGROUND SERVICE , которая запустит новую тему , в которой я планирую задания с интерваломчтобы отправить данные, а затем, когда я начинаю сканирование, я устанавливаю обработчик с задержкой 'X' секунд , который останавливает сканирование после задержки, а затем, когда я останавливаю сканирование, яустановите тот же обработчик на задержку 'N' секунд , поэтому через 'N' секунд он снова начнет сканирование .
ИспользованиеЗапланированные задания также для выполнения операций сканирования
На самом деле Я использую опцию FIRST , но я хочу знать, будет ли вторая потреблять меньше энергии итогда батарея будет работать больше, или если обработчики не потребляют много батареи.
Погуглив, я обнаружил, что Handl лучше, чем AlarmManager , поскольку AlarmManager активно потребляют мощности до достижения установленного времени, поэтому Обработчики потребляют меньше энергии, чем AlarmManager .
Но насчет Обработчиков и Запланированных заданий ?
Я видел, что когда я запускаю службу как Foreground , я всегдау меня есть уведомления на экране, поэтому я не знаю, будет ли использование Handlers в Foreground service потреблять больше энергии, чем запланированное задание.
Имейте в видучто мне нужно, чтобы МОЙ СЕРВИС НИКОГДА НЕ ОСТАНАВЛИВАЛСЯ и ДОЛЖНЫ ВСЕГДА НАЧАТЬ СКАНИРОВАНИЕ ПОСЛЕ 'N' секунд на 'X' секунд! Так что я не уверен, смогу ли я получить это внутриЗапланированное задание, если да, я не уверен, что вариант 1 лучше, чем 2, или вариант 2 лучше, чем вариант 1.
Большое спасибо!Приятного кодирования!: D