Управление сканированием BLE внутри службы (должны ли использоваться обработчики или задания?) - PullRequest
0 голосов
/ 05 марта 2019

Я выполняю сервис, который будет выполнять следующие действия:

  1. При запуске он запускает новый поток, в котором он сначала запланирует задание с помощью 'Z'интервал, который отправит все RSSI, сохраненные в Realm

  2. Затем он начнет сканирование Bluetooth в течение 'X' секунд каждые 'N' секунд ихранить внутри БД Realm все найденные BLE-теги.Остановка и запуск сканирования выполняются с помощью Обработчик .

Но у меня есть вопрос о том, какой метод лучше всего подходит для этого:

  1. Используйте FOREGROUND SERVICE , которая запустит новую тему , в которой я планирую задания с интерваломчтобы отправить данные, а затем, когда я начинаю сканирование, я устанавливаю обработчик с задержкой 'X' секунд , который останавливает сканирование после задержки, а затем, когда я останавливаю сканирование, яустановите тот же обработчик на задержку 'N' секунд , поэтому через 'N' секунд он снова начнет сканирование .

  2. ИспользованиеЗапланированные задания также для выполнения операций сканирования

На самом деле Я использую опцию FIRST , но я хочу знать, будет ли вторая потреблять меньше энергии итогда батарея будет работать больше, или если обработчики не потребляют много батареи.

Погуглив, я обнаружил, что Handl лучше, чем AlarmManager , поскольку AlarmManager активно потребляют мощности до достижения установленного времени, поэтому Обработчики потребляют меньше энергии, чем AlarmManager .

Но насчет Обработчиков и Запланированных заданий ?

Я видел, что когда я запускаю службу как Foreground , я всегдау меня есть уведомления на экране, поэтому я не знаю, будет ли использование Handlers в Foreground service потреблять больше энергии, чем запланированное задание.

Имейте в видучто мне нужно, чтобы МОЙ СЕРВИС НИКОГДА НЕ ОСТАНАВЛИВАЛСЯ и ДОЛЖНЫ ВСЕГДА НАЧАТЬ СКАНИРОВАНИЕ ПОСЛЕ 'N' секунд на 'X' секунд! Так что я не уверен, смогу ли я получить это внутриЗапланированное задание, если да, я не уверен, что вариант 1 лучше, чем 2, или вариант 2 лучше, чем вариант 1.

Большое спасибо!Приятного кодирования!: D

...