クライアント サーバーの Android アプリケーションに取り組んでいます。クライアントはサーバー メッセージをポーリングしているbufferedinputstream (in)
間、サーバーが到達可能かどうかを繰り返しチェックしているため、サーバーがオフラインになったときにすぐに終了できます。
try {
while (true) {
if (MainActivity.in.available() > 0) {
message = MainActivity.readInput();
break;
}
Thread.sleep(100);
}
} catch (IOException e) {Log.e("myoutput", e.toString()); serverOffline = true; } //server probably offline?
catch (InterruptedException e2) {}
私のテストデバイス(Android 2.2)の1つでは、これは思ったとおりに機能し、サーバーを閉じるとすぐにIOException
トリガーされます。私の2番目のテストデバイス(Android 4.3)IOException
ではトリガーされません(API 8に準拠)。しかし、エミュレーターで API 8 と 18 の両方を実行しようとしたが、トリガーされなかったため、これはデバイスの問題ではないと考え始めています。
何か案は?
ここから助けを得るために必要なすべての情報を提供していない可能性があります。そうであればお知らせください。提供します。