Если у вас есть Java 1.4:
Я предполагаю, что тайм-аут соединения (URLConnection.setConnectTimeout(int timeout)
) бесполезен, потому что вы выполняете потоковую передачу.
--- Не уничтожать поток --- Это может вызвать неизвестные проблемы, открыть дескрипторы и т. Д.
Создать java.util.TimerTask, где вы будете проверять, закончили ли вы процесс, в противном случае закройте BufferedReader и OutputStream URLConnection
Вставьте логический флаг isFinished
и установите для него значение true в конце цикла и значение false перед циклом
TimerTask ft = new TimerTask(){
public void run(){
if (!isFinished){
urlConn.getInputStream().close();
urlConn.getOutputStream().close();
}
}
};
(new Timer()).schedule(ft, timeout);
Это, вероятно, вызовет исключение ioexception, поэтому вы должны его поймать. Исключение само по себе неплохое.
Я опускаю некоторые объявления (то есть финалы), чтобы анонимный класс мог получить доступ к вашим переменным. Если нет, то создайте POJO, который поддерживает ссылку, и передайте ее таймерной задаче