2017-03-17 1 views
-3

Dans mon application, je télécharge un fichier image. Je veux montrer la vitesse de téléchargement sur une barre de progression pour le téléchargement.Comment afficher la vitesse de téléchargement sur le ProgressDialog

Comment est-ce possible grâce à AsyncTask Concept?

+0

Quelque chose pour commencer http://www.androidhive.info/2012/04/android-downloading-file-by-showing-progress-bar/ –

+1

Avez-vous essayé de google n'importe quoi de votre côté. il y a beaucoup de réponses disponibles à cette question. – Tauqir

+0

@Tauqir j'ai essayé depuis trois jours, mais il montre comme 20% 23/100. je veux le montrer comme kb/s. –

Répondre

0

Avec cet exemple, vous pouvez régler la vitesse de téléchargement sur votre 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); 
    } 
} 

pour calculer la vitesse de téléchargement, vous pouvez utiliser cet exemple Measuring Download Speed Java

+0

merci laissez-moi essayer ... –

+1

Fonctionne pour moi ... merci @mcatta. –

+0

@Hassanjan bien! Pouvez-vous marquer la réponse comme pls droite? Je vous remercie! – mcatta

0

Voir l'extrait de code

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