2010-01-20 15 views
23

Ich möchte den Fortschritt einiger Download wissen.
Wenn ich einige Ressourcen aus dem Internet bekommen, wie folgt aus:Android Download Progress

 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 
     } 

Wenn "Input in = httpConnection.getInputStream();" heißt,
der gesamte Inhalt der Datei wird sofort heruntergeladen.

Wenn ich benutze:

 htttpResponse = httpClient.execute(httpRequestBase); 

Das Problem ist das gleiche.

Wie kann ich den tatsächlichen Fortschritt des Downloads erkennen?

Danke euch allen!

Antwort

9

Ich denke, das war answered here.

Kurz gesagt: Verwenden Sie die "Content-Length", die in den Kopfzeilenfeldern sein sollte.

EDIT: Entschuldigung, ich habe die Frage nicht genau beantwortet. Sobald Sie die zu erwartende Gesamtlänge des Inhalts kennen, können Sie verfolgen, wie viele Daten Sie erhalten haben, und den Prozentsatz berechnen, der vollständig ist. auch

Siehe: How to create a download manager

+1

Ich weiß schon, die Dateigröße, durch getContentLength(). Was ich nicht weiß ist, wie man den Fortschritt des bereits erhaltenen Inhalts bekommt. Ich rede von nur einer Datei. – Tsimmi

+0

Oh ich verstehe. Ok, siehe den Link "Wie man einen Download-Manager erstellt". Hilft das? – GaZ

+0

Entschuldigung! Ich habe diesen Link zuerst nicht gesehen. – Tsimmi