Моему приложению нужно загружать большие файлы. Через некоторое время я получаю
java.net.SocketException: Connection timed out
Я верю, потому что устройство будет спать или wifi.
Так как я должен справиться с этим? Я хочу, чтобы этот пользователь мог загрузить большой файл независимо от того, сколько времени он займет.
Загрузка файла выполняется с использованием:
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();
Благодарю.
Вы не можете справиться с этим, кроме как путем повторного подключения. Вы можете уменьшить время ожидания соединения по умолчанию около 75 секунд, но вы не можете его поднять.
socket.setSoTimeout(nnnn);