Как справиться с переключением с 3G на WIFI?UrlConnection TimeOut не выдает исключение - PullRequest
2 голосов
/ 16 ноября 2010

Мое приложение должно загрузить несколько больших файлов.Я использую сервис для загрузки, показываю прогресс в уведомлении.Проблема в том, что в течение этого времени загрузки пользователь может переключиться с 3g на WIFI.В этом случае прогресс останавливается, но исключение не выдается.Как мне правильно справиться с этой ситуацией?

URL url = new URL(myurl);
URLConnection conexion = url.openConnection();
conexion.setReadTimeout(10000);
conexion.setConnectTimeout(10000);
conexion.connect();
int lenghtOfFile = conexion.getContentLength();
// downlod the file
InputStream input = new BufferedInputStream(url.openStream());
OutputStream output = new FileOutputStream(targetFilePath);

byte data[] = new byte[1024];

long total = 0;
while ((count = input.read(data)) != -1) {
    total += count;
    // publishing the progress....
    updateProgress(downloadNM, downloadNotification, (int)total*100/lenghtOfFile);
    output.write(data, 0, count);
}
output.flush();
output.close();
input.close();

1 Ответ

1 голос
/ 16 ноября 2010

Взгляните на HttpClient-Library.Он предоставляет гораздо больше возможностей, чем класс URL, и может помочь вам в вашей проблеме.

http://developer.android.com/reference/org/apache/http/client/HttpClient.html

...