Junior — Middle
Hogyan lehet törölni egy WorkManager segítségével indított feladatot?
sobes.tech MI
Válasz az MI-től
Az Androidon a WorkManager segítségével indított feladat törléséhez használhatja a WorkManager által biztosított törlési módszereket. A fő törlési módok:
- Feladat azonosító (UUID) szerinti törlés:
val workManager = WorkManager.getInstance(context)
workManager.cancelWorkById(workRequest.id)
- Címke szerinti törlés, ha a feladat címkével lett indítva:
workManager.cancelAllWorkByTag("myTag")
- Feladatsor neve szerinti törlés:
workManager.cancelUniqueWork("uniqueWorkName")
A törlési módszer hívása után a WorkManager megpróbálja leállítani a feladat végrehajtását, ha az még nem fejeződött be. Fontos, hogy a feladat (Worker) maga is megfelelően kezelje a törlést, például ellenőrizze az isStopped zászlót és időben lépjen ki.
Példa a Worker-ben:
class MyWorker(context: Context, params: WorkerParameters) : Worker(context, params) {
override fun doWork(): Result {
for (i in 0 until 100) {
if (isStopped) {
return Result.failure()
}
// A munka egy részének végrehajtása
}
return Result.success()
}
}