Я разрабатываю приложение bluetooth для связи с устройством. Мне нужно отправить на это устройство определенный пакет, и это устройство ответит мне в режиме уведомления через определенное время. Все работает хорошо, но я должен проверить, если ответ придет ко мне через 3 секунды, и если он не придет вовремя, я должен отправить еще одну команду, не дожидаясь предыдущего пакета.Как проверить, получен ли ответ Bluetooth в течение определенного срока?
Как я могу реализовать таймер в Android?
Я подумал: 1- запуска таймера, когда я отправить пакет 2 остановки таймера, когда ответ приехать ко мне или если тзд было отослано более 3 секунд назад таймер запускает функцию, и это позволит resend other msg
Я думаю, что нужно сделать это с помощью обработчика и postdelay.
Как вы думаете? есть ли лучшие способы реализации этого?
Возможно, TimerTask?
Я испугался следующего случая: запуск таймера, я получаю ответ, посылаю другую команду, таймер останавливается менее чем за 3 секунды, потому что был запущен при первом отправке пакетов и никогда не останавливался, а затем я повторно отправляю команду в неподходящее время:/ – aeroxr1
Как только вы получите ответ, вы всегда можете отменить таймер с помощью функции cancel(), если таймер еще не закончен. Когда вы отмените таймер, отметьте экземпляр таймера нулевым. Таким образом, вы будете уверены, что когда получите ответ, вы можете проверить значение null для экземпляра таймера. Если таймер не равен нулю, и вы получаете ответ от устройства, вы можете отменить таймер. CountDownTimer имеет onTick(), который вы можете использовать, чтобы периодически проверять ответ, скажем, если вы установите таймер на 3 секунды, вы можете проверять каждую секунду, пришел ли ответ или нет. – Geetha
Пример для CountDownTimer - http://androidbite.blogspot.com.au/2012/11/android-count-down-timer-example.html – Geetha