Sobes.tech
Junior — Middle

Πώς μπορείτε να διακόψετε ή να ακυρώσετε την εκτέλεση μιας ασύγχρονης coroutine στην εφαρμογή σας;

sobes.tech AI

Απάντηση από AI

Στην Kotlin, για να διακόψετε ή να ακυρώσετε μια ασύγχρονη coroutine, χρησιμοποιείται ο μηχανισμός ακύρωσης μέσω του Job. Για να ακυρώσετε τη coroutine, πρέπει να καλέσετε τη μέθοδο cancel() στο αντίστοιχο Job.

Παράδειγμα:

val job = CoroutineScope(Dispatchers.Default).launch {
    repeat(1000) { i ->
        println("Δουλεύω $i ...")
        delay(500)
    }
}

// Αργότερα, για να ακυρώσετε την εκτέλεση:
job.cancel()

Είναι σημαντικό να υπάρχουν σημεία ακύρωσης μέσα στη coroutine — για παράδειγμα, κλήσεις σε suspend λειτουργίες όπως το delay(), που ελέγχουν την κατάσταση ακύρωσης και επιτρέπουν στη coroutine να τερματίσει σωστά.