1

私のアプリは大きなファイルをダウンロードする必要があります。しばらくすると、

java.net.SocketException: Connection timed out

デバイスがスリープ状態になるか、Wi-Fi になるためだと思います。

では、これをどのように処理する必要がありますか? どんなに時間がかかっても、ユーザーが大きなファイルをダウンロードできるようにしたい。

ファイルのダウンロードは、次を使用して行われます。

HttpURLConnection con =  (HttpURLConnection) new URL(uriToFile).openConnection();
con.connect();

FileOutputStream fileOutput = new FileOutputStream(file);
InputStream inputStream = con.getInputStream();

byte[] buffer = new byte[1024];
int bufferLength = 0;

while ((bufferLength = inputStream.read(buffer)) > 0) {

    fileOutput.write(buffer, 0, bufferLength);

}

fileOutput.close();

ありがとう。

4

1 に答える 1

0

接続を再試行する以外に、それを処理することはできません。約 75 秒のデフォルトの接続タイムアウトを下げることはできますが、それを上げることはできません。

于 2012-06-04T09:48:39.283 に答える