Как показать скорость загрузки в ProgressDialog

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

Как это возможно через AsyncTask Concept?


person Hassan jan    schedule 17.03.2017    source источник
comment
Что-то для начала с androidhive.info/2012 /04/   -  person rohitanand    schedule 17.03.2017
comment
Вы пытались Google что-нибудь с вашей стороны. есть много ответов на этот вопрос.   -  person Mohammad Tauqir    schedule 17.03.2017
comment
@Tauqir, с тех пор я пытался в течение трех дней, но он показывает 20% 23/100. я хочу показать это как kb/s.   -  person Hassan jan    schedule 17.03.2017
comment
четко задайте свой вопрос и предоставьте ссылки, по которым вы уже переходили. если ваш вопрос не ясен, а также если он распространен, то наверняка он вызовет отрицательное голосование.   -  person Mohammad Tauqir    schedule 17.03.2017
comment
В следующий раз я буду стараться изо всех сил. На самом деле я новичок здесь, я знаю, что это небольшая проблема, но я в замешательстве. Мой файл загружается и правильно сохраняется во внешнем каталоге. Но я хочу показать скорость загрузки файла вместо процента. @mcatta дайте мне урок, я попробую. Но если у вас есть какая-либо информация, пожалуйста, предложите мне, я буду очень благодарен.   -  person Hassan jan    schedule 17.03.2017


Ответы (2)


В этом примере вы можете установить скорость загрузки в диалоговом окне прогресса.

public class AsyncDownload extends AsyncTask<Void, Double, String> {

    ProgressDialog progressDialog;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();

        progressDialog = new ProgressDialog(MainActivity.this);
        progressDialog.setMessage("Speed: " + 0.0);
        progressDialog.show();
    }

    @Override
    protected String doInBackground(Void... voids) {

        // AsyncDownload

        Double speed = 0.0;

        // Calculate speed
        publishProgress(speed);

        return null;
    }

    @Override
    protected void onProgressUpdate(Double... values) {
        super.onProgressUpdate(values);

        progressDialog.setMessage("Speed " + values[0]);
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
    }
}

для расчета скорости загрузки вы можете использовать этот пример Измерение скорости загрузки Java

person mcatta    schedule 17.03.2017
comment
@Хассанджан хорошо! Можете ли вы отметить ответ как правильный, пожалуйста? Благодарю вас! - person mcatta; 20.03.2017
comment
Да, дорогая @mcatta - person Hassan jan; 20.03.2017

См. фрагмент кода

 public static class MyDownloadTask extends AsyncTask<Void, Integer, Void> {

    @Override
    protected void onProgressUpdate(Integer... values) {
        super.onProgressUpdate(values);
        // receive the published update here
        // progressBar.setProgress(values[0]);
    }

    @Override
    protected Void doInBackground(Void... params) {
        // publish your download progress here
        // publishProgress(10);
        return null;
    }
}
person alijandro    schedule 17.03.2017