Android Download Progress

Tsimmi picture Tsimmi · Jan 20, 2010 · Viewed 17.3k times · Source

I want to know the progress of some download.
When I'm getting some resource from the internet, like this:

        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
        }

When "InputStream in = httpConnection.getInputStream();" is called,
all the content of the file is downloaded at once.

If I use:

        htttpResponse = httpClient.execute(httpRequestBase);

The problem is the same.

How can I detect the actual progress of the download?

Thank you all!

Answer

GaZ picture GaZ · Jan 20, 2010

I think this has been answered here.

In a nutshell: use the "Content-Length" which should be in the header fields.

EDIT: sorry, I wasn't answering the question exactly. Basically once you know the expected total content length then you can keep track of how much data you have received and calculate the percentage complete.

See also: How to create a download manager