如何在ProgressDialog上显示下载速度

时间:2017-03-17 08:36:47

标签: android android-asynctask android-dialog

在我的应用程序中,我正在下载图像文件。我想在下载进度条上显示下载速度。

通过AsyncTask概念怎么可能?

2 个答案:

答案 0 :(得分:0)

请参阅代码段

 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;
    }
}

答案 1 :(得分:0)

通过此示例,您可以在progressdialog上设置下载速度

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);
    }
}

要计算下载速度,您可以使用此示例Measuring Download Speed Java