Les AsyncTask permettent une utilisation correcte et facile du ThreadUI. Cette classe permet d’effectuer des tâches de fond et de publier des résultats sans manipuler des threads et/ou des handlers.
Les AsyncTask permettent une utilisation correcte et facile du ThreadUI. Cette classe permet d’effectuer des tâches de fond et de publier des résultats sans manipuler des threads et/ou des handlers.
Une tâche asynchrone est définie par un calcul qui fonctionne sur un thread en arrière-plan et dont le résultat est publié sur le ThreadUI. Une tâche asynchrone est définie par 3 types génériques, appelés : le paramètre, la progression et le résultat ainsi que 4 étapes, appelées OnPreExecute, doInBackground, onProgressUpdate et onPostExecute.
Idéalement, les AsyncTasks sont utilisées pour des utilisations courtes (quelques secondes au plus). Pour des opérations de longues périodes, il est fortement recommandé d’utiliser les différentes APIUne API est un programme permettant à deux applications distinctes de communiquer entre elles et d’échanger des données. comme Executor, ThreadPoolExecutor et FutureTask.
AsyncTask est une classe abstraite. Pour l’utiliser, il faut donc créer une classe qui en hérite.
class DownloadFilesTask extends AsyncTask<
URL, Integer, Long> {
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));
// Escape early if cancel() is called
if (isCancelled()) break;
}
return totalSize;
}
protected void onProgressUpdate(Integer... progress) {
setProgressPercent(progress[0]);
}
protected void onPostExecute(Long result) {
showDialog("Downloaded " + result + " bytes");
}
}
Une fois créée, une tâche est exécutée très simplement:
new DownloadFilesTask().execute(url1, url2, url3);
De cette manière, les tâches sont mises dans une file d’attente et s’exécuteront les unes après les autres.
Pour quelles s’exécutent parallèlement :
new DownloadFilesTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, url1,url2,url3);
Les trois types utilisés par une tâche asynchrone sont les suivants:
Tous les types ne sont pas toujours utilisés par une tâche asynchrone. Pour marquer un type non utilisé, il suffit d’utiliser le type Void:
class MaTache extends AsyncTask<
Void, Void, Void> { ... }
Lorsqu’une tâche asynchrone est exécutée, la tâche passe par 4 étapes:
Pour que cette classe fonctionne correctement, il y a quelques règles à respecter :
Les profils de développeur junior peuvent-ils encore avoir la côte auprès des entreprises ? Aujourd’hui (en 2026), à moins d’être perdu au fin fond de la Maurienne, il est devenu rare de passer une journée sans entendre parler d’intelligence artificielle. Sur LinkedIn, dans les médias, ou même autour de la machine à café, le sujet est partout, et avec lui revient toujours la même question : le métier de développeur est-il en train de disparaître ?
Si vous êtes dans le monde du web depuis plus de 10 ans, vous avez surement déjà dû entendre parler du WebAssembly il y a un petit moment. A l'époque, on parlait d'une révolution du web, mais qu'en est-il quasiment une décennie plus tard ? Alors, le web est-il révolutionné ? C'est ce que nous allons voir !
Découvrez la planche #65 !