Sobes.tech
Junior — Middle

Чӣ гуна метавон вазифаи оғозшуда тавассути WorkManager-ро бекор кард?

sobes.tech AI

Ҷавоб аз AI

Барои бекор кардани вазифаи оғозшуда тавассути WorkManager дар Android, шумо метавонед усулҳои бекориро истифода баред, ки худи 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()
    }
}