Android Progrès de la publication


Exemple

Parfois, nous devons mettre à jour la progression du calcul effectué par une AsyncTask . Cette progression peut être représentée par une chaîne, un entier, etc. Pour ce faire, nous devons utiliser deux fonctions. Tout d'abord, nous devons définir la fonction onProgressUpdate dont le type de paramètre est identique à celui du second paramètre de notre AsyncTask .

class YourAsyncTask extends AsyncTask<URL, Integer, Long> {
    @Override
    protected void onProgressUpdate(Integer... args) {
        setProgressPercent(args[0])
    }
}

Deuxièmement, nous devons utiliser la fonction publishProgress nécessairement sur la fonction doInBackground , et c'est tout, la méthode précédente fera tout le travail.

protected Long doInBackground(URL... urls) {
     int count = urls.length;
     long totalSize = 0;
     for (int i = 0; i < count; i++) {
         totalSize += Downloader.downloadFile(urls[i]);
         publishProgress((int) ((i / (float) count) * 100));
     }
     return totalSize;
 }