Junior — Middle
Kako otkazati zadatak pokrenut putem WorkManager-a?
sobes.tech АИ
Одговор од АИ
Da biste otkazali zadatak pokrenut putem WorkManager na Androidu, možete koristiti metode za otkazivanje koje pruža sam WorkManager. Glavni načini otkazivanja:
- Otkazivanje po ID-u zadatka (UUID):
val workManager = WorkManager.getInstance(context)
workManager.cancelWorkById(workRequest.id)
- Otkazivanje po oznaci, ako je zadatak pokrenut s oznakom:
workManager.cancelAllWorkByTag("myTag")
- Otkazivanje po imenu lanca zadataka:
workManager.cancelUniqueWork("uniqueWorkName")
Nakon poziva metode otkazivanja, WorkManager će pokušati zaustaviti izvršavanje zadatka ako još nije završen. Važno je da sama zadatak (Worker) implementira ispravno rukovanje otkazivanjem, na primer, proverom zastavice isStopped i pravovremenim izlaskom.
Primer unutar Worker-a:
class MyWorker(context: Context, params: WorkerParameters) : Worker(context, params) {
override fun doWork(): Result {
for (i in 0 until 100) {
if (isStopped) {
return Result.failure()
}
// Izvršavanje dela posla
}
return Result.success()
}
}