Чтение из InputStream - PullRequest
       11

Чтение из InputStream

1 голос
/ 11 февраля 2012

Мне нужно написать приложение, которое будет получать данные из InputStream. Вкратце: мое приложение сначала подключится к устройству Bluetooth. После подключения мое приложение будет непрерывно получать данные из InputStream. Я имею в виду, что устройство будет отправлять данные за 20 милсек, а приложение будет получать эти данные, работая в течение 24 часов, может даже больше. Пока я читаю эти данные так:

while((bytesReceived = is.read(buffer))>-1) {
  //things to do with data
}

Этот цикл получает данные, когда он находится в потоке, и останавливается, когда входной поток близок. Моя проблема в том, что я думаю, что это не оптимальное решение. После того, как is.read (буфер) получает данные, он блокирует ожидание следующих данных, которые потребляют много процессора. Знаете ли вы какой-нибудь лучший способ считывания данных, который потребляет наименьшую мощность процессора. Спасибо за любую помощь.

КСТАТИ. Я пишу свое приложение на Java на Android.

1 Ответ

7 голосов
/ 11 февраля 2012

Блокировка read не потребляет процессор.ОС переведет вызывающий поток / процесс в спящий режим.

С этим циклом все в порядке.

...