Sobes.tech
Junior — Middle

Come si può avviare l'esecuzione di una funzione suspend in Kotlin?

sobes.tech AI

Risposta dell'AI

In Kotlin, le funzioni suspend possono essere chiamate solo da un'altra funzione suspend o da una coroutine. Per avviare una funzione suspend al di fuori di un contesto suspend, si utilizza uno scope di coroutine e funzioni di avvio come launch o async della libreria kotlinx.coroutines.

Esempio:

import kotlinx.coroutines.*

suspend fun fetchData() {
    delay(1000) // simulazione di un'operazione lunga
    println("Dati ricevuti")
}

fun main() {
    runBlocking { // avvia una coroutine e blocca il thread corrente
        fetchData() // chiamata a funzione suspend all'interno di un contesto suspend
    }

    GlobalScope.launch { // avvia una coroutine nello scope globale
        fetchData()
    }
    Thread.sleep(2000) // per evitare che il programma termini prima
}

Pertanto, per avviare una funzione suspend, bisogna essere all'interno di una funzione suspend o avviare una coroutine usando launch, async o runBlocking.