Sobes.tech
Junior — Middle

როგორ შეიძლება გაუქმდეს WorkManager-ის საშუალებით დაწყებული დავალება?

sobes.tech AI

პასუხი AI-სგან

Android-ზე WorkManager-ის საშუალებით დაწყებული დავალების გაუქმებისთვის, შეგიძლიათ გამოიყენოთ თავად WorkManager-ის მიერ მოწოდებული გაუქმების მეთოდები. ძირითადი გაუქმების გზები:

  1. დავალების ID (UUID) მიხედვით გაუქმება:
val workManager = WorkManager.getInstance(context)
workManager.cancelWorkById(workRequest.id)
  1. ტეგის მიხედვით გაუქმება, თუ დავალება დაიწყო ტეგით:
workManager.cancelAllWorkByTag("myTag")
  1. დავალების ჯაჭვის სახელით გაუქმება:
workManager.cancelUniqueWork("uniqueWorkName")

გაუქმების მეთოდის გამოძახების შემდეგ, WorkManager-ი შეეცდება შეჩეროს დავალების შესრულება, თუ ის ჯერ კიდევ არ დასრულებულა. მნიშვნელოვანია, რომ თავად დავალება (Worker) სწორად მართოს გაუქმება, მაგალითად, შემოწმდეს isStopped ბილეთი და დროულად გამოვიდეს.

Worker-ის მაგალითი:

class MyWorker(context: Context, params: WorkerParameters) : Worker(context, params) {
    override fun doWork(): Result {
        for (i in 0 until 100) {
            if (isStopped) {
                return Result.failure()
            }
            // სამუშაო ნაწილის შესრულება
        }
        return Result.success()
    }
}