ネットワークアクセスがドロップしたときに、実行中の[進行状況]ダイアログを停止するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4367936

  •  09-10-2019
  •  | 
  •  

質問

私は、処理のためにXMLをつかむためにウェブサイトに出て行くアプリを持っています。このプロセスは別のスレッドにあり、3GまたはWiFiを利用できる場合は正常に機能します。また、実際にスレッドを実行する前に信号をチェックするコードもあります。 接続はありません.

テスト中、私はすべての信号をブロックした建物に入ったので、外に出て信号がありましたが、信号の中に入ったときにプロセスが始まりました。 進行状況ダイアログ 走り続けただけで、プログラムを手動で閉鎖して回復させなければなりませんでした。

この状況が発生した場合、ユーザーがアプリを手動でシャットダウンすることを要求することなく、これに対処する良い方法はありますか?

役に立ちましたか?

解決

あなたにタイムアウトパラメーターを供給します HttpClientそして、sockettimeoutexceptionをキャッチします

HttpParams httpParams=new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 5000);
HttpConnectionParams.setSoTimeout(httpParams, 5000);
HttpClient httpClient=new DefaultHttpClient(httpParams);
try {
    httpClient.execute(new HttpGet("http://myserver.xml"));
}
    catch(SocketTimeoutException ex){
        //Perform Timeout i.e. cancle progress dialog
    }
    catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top