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.