2012-02-11 78 views
1

我需要編寫將從InputStream中重新存儲數據的應用程序。簡而言之:我的應用程序將首先連接到藍牙設備。連接後,我的應用程序將不斷從InputStream中繼續傳輸數據。我的意思是,該設備將發送20毫秒的數據,應用程序將收到此數據工作24小時,甚至更多。現在我以這種方式讀取這些數據:從InputStream中讀取

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

此循環在流中時接收數據,當輸入流處於關閉狀態時停止。我的問題是我認爲這不是最佳解決方案。在讀取(緩衝區)接收數據之後,它會阻塞等待下一個數據消耗大量處理器。你知道什麼更好的方式來讀取消耗最少處理器能力的數據。謝謝你的幫助。

順便說一句。我在Android上使用Java編寫應用程序。

回答

7

阻止read不佔用CPU。操作系統會讓調用線程/進程進入休眠狀態。

該循環很好。

+0

感謝您的信息:P – klemens 2012-02-11 18:27:54