2010-01-20 70 views
23

我想知道一些下载的进度。
当我收到从网上的一些资源, 这样的:Android下载进度

 String myFeed = request.getURI().toString(); 
     URL url = new URL(myFeed); 
     URLConnection connection = url.openConnection(); 
     HttpURLConnection httpConnection = (HttpURLConnection) connection; 
     int responseCode = httpConnection.getResponseCode(); 
     if (responseCode == HttpURLConnection.HTTP_OK) { 

      InputStream in = httpConnection.getInputStream(); 
      // Process the input stream 
     } 

当 “的InputStream在= httpConnection.getInputStream();”被称为,
该文件的所有内容一次下载。

如果我使用:

 htttpResponse = httpClient.execute(httpRequestBase); 

的问题是一样的。

如何检测下载的实际进度?

谢谢大家!

回答

9

我觉得这已经是answered here

简而言之:使用应该在标题字段中的“Content-Length”。

编辑:对不起,我没有完全回答这个问题。基本上,一旦你知道预期的总体内容长度,那么你可以跟踪你收到的数据量并计算完成的百分比。

参见:How to create a download manager

+1

我已经知道文件的大小,通过getContentLength()。 我不知道如何获得已收到内容的进度。我只谈论一个文件。 – Tsimmi 2010-01-20 11:41:55

+0

哦,我明白了。好的,请参阅“如何创建下载管理器”链接。这有帮助吗? – GaZ 2010-01-20 12:06:08

+0

对不起!起初我没有看到这个链接。 – Tsimmi 2010-01-20 12:44:26