Sobes.tech
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:

  1. Feladat azonosító (UUID) szerinti törlés:
val workManager = WorkManager.getInstance(context)
workManager.cancelWorkById(workRequest.id)
  1. Címke szerinti törlés, ha a feladat címkével lett indítva:
workManager.cancelAllWorkByTag("myTag")
  1. 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()
    }
}