Junior — Middle
Wie kann man eine über den WorkManager gestartete Aufgabe stornieren?
sobes.tech KI
Antwort von AI
Um eine durch WorkManager in Android gestartete Aufgabe zu stornieren, können Sie die vom WorkManager selbst bereitgestellten Abbruchmethoden verwenden. Die Hauptmethoden zum Abbrechen:
- Abbrechen nach Aufgaben-ID (UUID):
val workManager = WorkManager.getInstance(context)
workManager.cancelWorkById(workRequest.id)
- Abbrechen nach Tag, wenn die Aufgabe mit einem Tag gestartet wurde:
workManager.cancelAllWorkByTag("myTag")
- Abbrechen nach Namen der Aufgabenfolge:
workManager.cancelUniqueWork("uniqueWorkName")
Nach dem Aufruf der Abbruchmethode versucht WorkManager, die Ausführung der Aufgabe zu stoppen, falls sie noch nicht abgeschlossen ist. Es ist wichtig, dass die Aufgabe (Worker) selbst eine korrekte Abbruchbehandlung implementiert, z.B. durch Überprüfung des Flags isStopped und rechtzeitiges Beenden der Arbeit.
Beispiel im 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()
}
// Teil der Arbeit ausführen
}
return Result.success()
}
}