我在下面有一段代码是从 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
时变为非 null ?
谢谢