Sobes.tech
Junior — Middle

Kuidas tühistada WorkManageri kaudu käivitatud ülesanne?

sobes.tech AI

Vastus AI-lt

Androidis tööriista WorkManager abil käivitunud ülesande tühistamiseks saate kasutada WorkManageri enda pakutavaid tühistamise meetodeid. Peamised tühistamise viisid:

  1. Tühistamine ülesande ID (UUID) järgi:
val workManager = WorkManager.getInstance(context)
workManager.cancelWorkById(workRequest.id)
  1. Tühistamine sildi järgi, kui ülesanne on käivitatud sildiga:
workManager.cancelAllWorkByTag("myTag")
  1. Tühistamine ülesande ahela nime järgi:
workManager.cancelUniqueWork("uniqueWorkName")

Pärast tühistamise meetodi väljakutset püüab WorkManager peatada ülesande täitmise, kui see pole veel lõpetatud. Oluline on, et ülesande (Worker) sees oleks õigesti rakendatud tühistamise käitlemine, näiteks isStopped lipu kontrollimine ja õigeaegne väljumine.

Näide Worker sees:

class MyWorker(context: Context, params: WorkerParameters) : Worker(context, params) {
    override fun doWork(): Result {
        for (i in 0 until 100) {
            if (isStopped) {
                return Result.failure()
            }
            // Töö osa täitmine
        }
        return Result.success()
    }
}