Introduction à WorkManager pour Kotlin
WorkManager est une bibliothèque de Google pour Android, conçue pour exécuter des tâches en arrière-plan qui doivent être garanties, même en cas de redémarrage de l'appareil ou de fermeture de l'application. Elle fait partie d'Android Jetpack et fournit une API simple et fiable pour planifier des tâches différées, périodiques ou uniques.
L'objectif principal de WorkManager est de remplacer les anciens mécanismes de travail en arrière-plan, comme Service ou AsyncTask, et d'assurer la compatibilité avec différentes versions d'Android (à partir de l'API 14+). La bibliothèque choisit automatiquement la meilleure méthode d'exécution : JobScheduler (API 23+), AlarmManager + BroadcastReceiver (versions plus anciennes) ou Firebase JobDispatcher (si intégré).
WorkManager est idéal pour des scénarios tels que : la synchronisation de données avec un serveur, l'envoi d'analyses, le téléchargement de fichiers, le traitement d'images, la sauvegarde, l'envoi de notifications push et toute autre tâche qui ne nécessite pas une exécution immédiate mais doit être terminée prochainement.
Installation de WorkManager
WorkManager ne s'installe pas via pip ou npm, car il s'agit d'une bibliothèque Android (Kotlin/Java). Pour l'ajouter à votre projet, vous devez modifier le fichier build.gradle (au niveau du module).
Étape 1 : Ouvrez le fichier build.gradle de votre module (app/build.gradle).
Étape 2 : Ajoutez la dépendance dans le bloc dependencies :
dependencies {
implementation "androidx.work:work-runtime-ktx:2.9.0"
}
Étape 3 : Synchronisez le projet (Sync Now).
Si vous utilisez Kotlin DSL, la dépendance ressemblera à ceci :
dependencies {
implementation("androidx.work:work-runtime-ktx:2.9.0")
}
Important : La version 2.9.0 est la version actuelle au moment de la rédaction de cet article. Il est recommandé de vérifier la dernière version sur le site officiel d'Android Developers.
Démarrage rapide avec un exemple de code
Prenons un exemple simple : créons une tâche en arrière-plan qui affiche un log dans Logcat.
Étape 1 : Créez la classe Worker
import android.content.Context
import android.util.Log
import androidx.work.Worker
import androidx.work.WorkerParameters
class SimpleWorker(context: Context, params: WorkerParameters) : Worker(context, params) {
override fun doWork(): Result {
Log.d("SimpleWorker", "Tâche en arrière-plan exécutée !")
// Vous pouvez effectuer ici toute opération longue
return Result.success()
}
}
Étape 2 : Planifiez l'exécution de la tâche
import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.WorkManager
val workRequest = OneTimeWorkRequestBuilder<SimpleWorker>()
.build()
WorkManager.getInstance(context).enqueue(workRequest)
Après avoir appelé enqueue(), la tâche sera exécutée prochainement (généralement en quelques secondes, s'il n'y a pas de contraintes).
Méthodes et fonctions principales de WorkManager
1. OneTimeWorkRequestBuilder
Fonction : Crée une demande d'exécution unique pour une tâche. La tâche est exécutée une fois, puis supprimée de la file d'attente.
Paramètres :
workerClass(obligatoire) — classe héritant deWorkerouCoroutineWorker.setInitialDelay()— délai avant l'exécution (en millisecondes).setConstraints()— contraintes (par exemple, connexion Internet).addTag()— tag pour regrouper les tâches.setInputData()— données d'entrée pour le Worker.
Exemple :
val request = OneTimeWorkRequestBuilder Aussi dans la bibliothèque
SDK Firebase Android pour Kotlin : guide complet avec exemples
Bibliothèque standard C# (.NET) : aperçu complet
Géolocalisation et cartes en PHP : bibliothèques, API et exemples de code
Journalisation en Go (Golang) : meilleures bibliothèques et solutions 2024
MassTransit pour C# (.NET) : guide complet avec exemples