在我的应用程序中,我正在下载图像文件。我想在下载进度条上显示下载速度。
通过AsyncTask
概念怎么可能?
答案 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