Dans les Premiers pas avec WorkManager, nous avons vu que WorkManager effectue une tâche en arrière-plan de manière asynchrone en votre nom. L'intégration de base répond aux demandes de la plupart des applications. Apprenez-en davantage sur les exécutions de threads et la simultanéité dans WorkManager pour les cas d'utilisation plus avancés, tels que la gestion correcte des tâches en cours d'arrêt.
Quatre types différents de rôles primitifs fournis par WorkManager existent :
Worker
est l'intégration la plus simple, que nous avons vue dans les sections précédentes. Work Manager l'exécute automatiquement sur un thread d'arrière-plan (que vous pouvez ignorer). Pour en savoir plus sur l'exécution des threads dans les instancesWorker
, consultez les exécutions de threads dans Worker.CoroutineWorker
est l'intégration recommandée pour les utilisateurs de Kotlin. Les instancesCoroutineWorker
exposent une fonction de suspension pour les tâches en arrière-plan. Par défaut, elles exécutent unDispatcher
par défaut que vous pouvez personnaliser. Pour en savoir plus sur l'exécution de threads dans des instancesCoroutineWorker
, consultez les exécutions de threads dans CoroutineWorker.RxWorker
est l'intégration recommandée pour les utilisateurs de RxJava. Utilisez RxWorkers si une grande partie de votre code asynchrone existant est modélisée dans RxJava. Comme pour tous les concepts RxJava, vous êtes libre de choisir la stratégie d'exécution de threads de votre choix. Pour en savoir plus sur l'exécution de threads dans les instancesRxWorker
, consultez les exécutions de threads dans RxWorker.ListenableWorker
est la classe de base pourWorker
,CoroutineWorker
etRxWorker
. Elle est destinée aux développeurs Java qui doivent interagir avec des API asynchrones basées sur le rappel, telles queFusedLocationProviderClient
, et qui n'utilisent pas RxJava. Pour en savoir plus sur l'exécution de threads dans des instancesListenableWorker
, consultez les exécutions de threads dans ListenableWorker.