我有一段代碼下面是從Android上的套接字接收輸入流。它工作正常,但是當手機進入睡眠狀態時,我的記錄器會瘋狂地打印出它已收到""
。正確的方式來讀取輸入流android
從我的調試中,這意味着我的if
聲明在整個循環中是不夠的?
//Global variable declaration
private OnMessageReceived mMessageListener = null;
byte[] buffer = new byte[100];
while (mRun) {
int len = in.read(buffer);
input = "";
if (buffer != null && mMessageListener != null) {
for (int i = 0; i < len; i++) {
input += (char) buffer[i];
}
// call the method messageReceived from MyActivity class
mMessageListener.messageReceived(input);
System.out.println("Recieved: " + input);
}
input = "";
}
這是我的代碼,運行在while
。現在,我確信我沒有在我的代碼中測試正確的條件: if (buffer != null && mMessageListener != null)
代碼。
我還有什麼可以測試/我可以測試什麼是不正確的?
顯然在while
運行一次後,緩衝區不是== null,然後我假設當手機進入睡眠狀態(屏幕變黑)mMessageListener
變爲非空?
感謝
你試圖運行該代碼作爲服務?當然,如果您希望即使在由於某些原因而關閉/暫停應用程序時也要執行它。 – 2013-03-08 07:27:12