Middle
Quels types de WorkRequest connaissez-vous et quels critères peut-on leur appliquer?
sobes.tech IA
Réponse de l'IA
Types de WorkRequest:
- OneTimeWorkRequest : S'exécute une seule fois lorsque ses contraintes sont remplies.
- PeriodicWorkRequest : S'exécute plusieurs fois à intervalles réguliers.
Critères (Constraints) pouvant être appliqués à WorkRequest :
setRequiredNetworkType(NetworkType networkType): Type de réseau requis (CONNECTED, UNMETERED, NOT_ROAMING, METERED, NOT_REQUIRED).setRequiresCharging(boolean requiresCharging): Si la charge de l'appareil est requise.setRequiresDeviceIdle(boolean requiresDeviceIdle): Si l'appareil doit être inactif.setRequiresBatteryNotLow(boolean requiresBatteryNotLow): Si le niveau de batterie ne doit pas être faible.setRequiresStorageNotLow(boolean requiresStorageNotLow): Si l'espace de stockage ne doit pas être plein.addContentUriTrigger(Uri uri, boolean triggerContentMaxDelay): Déclencheur lors du changement de contenu à l'Uri spécifié.setTriggerContentUpdateDelay(long duration, TimeUnit unit): Délai avant le démarrage après le changement de contenu (pour OneTimeWorkRequest).setTriggerContentMaxDelay(long duration, TimeUnit unit): Délai maximum avant le démarrage après le changement de contenu (pour PeriodicWorkRequest).
Exemple de création de OneTimeWorkRequest avec contraintes :
// Créer des contraintes
val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.setRequiresCharging(true)
.build()
// Créer un OneTimeWorkRequest avec contraintes
val workRequest = OneTimeWorkRequestBuilder<MyWorker>()
.setConstraints(constraints)
.build()
Exemple de création de PeriodicWorkRequest avec contraintes :
// Créer des contraintes
val constraints = Constraints.Builder()
.setRequiresDeviceIdle(true)
.build()
// Créer un PeriodicWorkRequest avec contraintes
val periodicWorkRequest = PeriodicWorkRequestBuilder<MyWorker>(15, TimeUnit.MINUTES)
.setConstraints(constraints)
.build()