アプリでファイルをダウンロードし、次のタイムアウトを使用しています。
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 5000);
HttpConnectionParams.setSoTimeout(httpParameters, 5000);
時々、ファイルが部分的にしかダウンロードされません。低速のモバイル ネットワークで 5 秒以内にダウンロードが完了しない場合、5 秒の setSoTimeout でダウンロードを停止できますか?
Google Dev Docs から、次のように書かれています。
デフォルトのソケット タイムアウト (SO_TIMEOUT) をミリ秒単位で設定します。これは、データを待機するためのタイムアウトです。
これは最初のデータを待つ時間ですか、それとも次のデータを待つ時間ですか? IE ダウンロードが開始されますが、その後 5 秒間データが到着しません。
編集 SO_TIMEOUT を 100ms に減らしたテストを行いましたが、ダウンロードが 1 秒後に終了するのを止める効果はありませんでした。