Android - отображение индикатора выполнения при загрузке файла - PullRequest
3 голосов
/ 09 ноября 2010

Мне нужна помощь.Я искал несколько дней, пытаясь найти решение моей проблемы.Я хотел бы показать индикатор выполнения при загрузке файла в Android.Я нашел достаточно, чтобы загрузить файл, но изо всех сил пытался выяснить, как отобразить индикатор выполнения.

Вот мой код загрузки:

            String sURL = getString(R.string.DOWNLOAD_URL) + getString(R.string.DATABASE_FILE_NAME);
        HttpClient  httpclient = new DefaultHttpClient();
        HttpGet httpget = new HttpGet(sURL);
        HttpResponse response = httpclient.execute(httpget);
        HttpEntity entity = response.getEntity();
        Header[] clHeaders = response.getHeaders("Content-Length");
        Header header = clHeaders[0];
        int totalSize = Integer.parseInt(header.getValue());
        int downloadedSize = 0;
        if (entity != null) {
            InputStream stream = entity.getContent();
            byte buf[] = new byte[1024 * 1024];
            int numBytesRead;

            BufferedOutputStream fos = new BufferedOutputStream(new FileOutputStream(file));
            do {
                numBytesRead = stream.read(buf);
                if (numBytesRead > 0) {
                    fos.write(buf, 0, numBytesRead);
                    downloadedSize += numBytesRead;
                    //updateProgress(downloadedSize, totalSize);
                }
            } while (numBytesRead > 0);
            fos.flush();
            fos.close();
            stream.close();
            httpclient.getConnectionManager().shutdown();

Ответы [ 2 ]

2 голосов
/ 09 ноября 2010

Используйте асинктаску. В Интернете есть десятки учебных пособий, посвященных именно тому, что вы пытаетесь сделать.

0 голосов
/ 09 ноября 2010

Вы пытались прочитать документацию для AsyncTask ?Примером является точно , что вы пытаетесь сделать.В примере используются методы publishProgress() и onProgressUpdate().

. Установите индикатор выполнения на OnPreExecute(), периодически вызывайте publishProgress() и обновляйте индикатор выполнения в onProgressUpdate().

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...