如何处理从3G到WIFI的转换? UrlConnection TimeOut不会抛出异常

时间:2010-11-16 10:06:35

标签: android urlconnection

我的应用程序需要下载一些大文件。我使用下载服务显示通知中的进度。问题是在下载时间内用户可以从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 个答案:

答案 0 :(得分:1)

看看HttpClient-Library。它提供了比URL类更多的选项,可以帮助您解决问题。

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