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