从InputStream中读取

kle*_*ens 1 java android inputstream

我需要编写将从InputStream中重新获取数据的应用程序.简而言之:我的应用程序将首先连接到蓝牙设备.连接后,我的应用程序将连续从InputStream重新加载数据.我的意思是设备将发送20 milisec的数据,应用程序将收到这个数据工作24小时甚至更多.现在我以这种方式阅读这些数据:

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

此循环在流中时接收数据,在输入流接近时停止.我的问题是我认为这不是最佳解决方案.在is.read(缓冲区)接收数据后,它会阻塞等待下一个消耗大量处理器的数据.您是否知道更好的方法来读取消耗最少处理器功耗的数据.谢谢你的帮助.

BTW.我在Android上用Java编写应用程序.

Mat*_*Mat 7

阻塞read不消耗CPU.操作系统会将调用线程/进程置于休眠状态.

那个循环很好.