AndroidのBluetoothSocketからinputstream.read()関数にタイムアウトを実装することは可能ですか?
Thread.sleep()を使用してみましたが、これはアクティビティを一時停止するだけです。
- -アップデート - -
私は考えを持っていました、ここで2つのスレッドコードをここで読み取ります(t1&t2)。 t2)読み取り中に、入力ストリームが0x0Dとして他のスレッド(t1)に割り込む文字を検出した場合、ここに私の質問があります。誰かが私を助けることができますか?スレッドのinterrupt()メソッドを使用しなかったので、誰かが私を助けてくれることを願っています、ありがとう...
- -アップデート - -
public void run(){
while(true){
try {
char r;
String respuesta = "";
while (true) {
r = (char) mmInStream.read();
respuesta += r;
if (r == 0x3e) {
break;
}
}
respuesta = respuesta.replaceAll(" ", "");
Log.d("respuesta", respuesta);
rHandler.obtainMessage(MESSAGE_READ, -1, -1, respuesta).sendToTarget();
} catch (IOException readException) {
Log.e("ServicioGeneral", "Error de lectura", readException);
this.interrupt();
connectionLost();
// posibly break();
}
}
}
これは、何かが別のスレッドに入ったときの私の実装です。問題は、de mmInStreamから0x3e文字を取得しないと、タイムアウトに達することです。
2番目の例では、notifyAll()を使用する必要があると思いましたが、readThread()をいつ開始する必要がありますか?
ありがとう、@ weeman