Я работаю над приложением Android, которое передает данные из сокетного соединения в интерфейс Bluetooth. Для удобства общения я создал два BufferedReader
, которые я хочу слушать одновременно в IntentService
. Кроме того, я хочу, чтобы служба могла реагировать на такие события, как потеря Bluetooth или WiFi-соединения. Однако служба должна работать до тех пор, пока на интерфейсе сервера не будет получена определенная команда выхода.Одновременно слушать несколько потоков в службе
До сих пор я использую две темы, но не могу понять, как выполнить мои требования.
РЕШЕНИЕ
Решение состоит в том, чтобы использовать обычный Service
вместо IntentService
. В сервисе я использую два асинхронных метода: AsyncTasks
в моем случае для подключения к устройству Bluetooth и к серверу. Как только соединения установлены, я запускаю два потока, которые прослушивают данные, используя метод блокировки readLine()
. В сервисе я просто ничего не делаю, что не позволяет основному потоку освободиться при обращении с Bluetooth-соединением. Служба прекращается моей деятельностью, как только пользователь хочет отключиться.
Не используйте 'IntentService', вместо этого вы должны использовать обычную' Сервис'. – waqaslam