В моем приложении я загружаю файл изображения. Я хочу показать скорость загрузки на индикаторе выполнения загрузки.
Как это возможно через AsyncTask
Concept?
В моем приложении я загружаю файл изображения. Я хочу показать скорость загрузки на индикаторе выполнения загрузки.
Как это возможно через AsyncTask
Concept?
В этом примере вы можете установить скорость загрузки в диалоговом окне прогресса.
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
См. фрагмент кода
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;
}
}