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 になると想定していますか?
ありがとう