Junior — Middle
Kuidas korraldada viie samaaegse päringu täitmine kataloogidele ja saada kõik tulemused enne meetodi lõpetamist?
sobes.tech AI
Vastus AI-lt
Et teha viie samaaegse päringu teekonna kohta Androidis, saate kasutada Kotlin Coroutines'it koos async funktsiooniga paralleelse käivitamise jaoks ja awaitAll kõigi tulemuste ootamiseks. See võimaldab samaaegselt päringuid käivitada ja oodata nende lõpetamist enne jätkamist.
Näide:
import kotlinx.coroutines.*
suspend fun fetchAllDirectories(): List<ResultType> = coroutineScope {
val deferredList = listOf(
async { fetchDirectory1() },
async { fetchDirectory2() },
async { fetchDirectory3() },
async { fetchDirectory4() },
async { fetchDirectory5() }
)
deferredList.awaitAll() // Ootame kõigi päringute lõpetamist ja saame tulemused
}
suspend fun fetchDirectory1(): ResultType {
// päringu teostamine
}
// Sarnaselt teistele fetchDirectoryN
See lähenemine on tõhus ega blokeeri peamist niiti, mis on oluline Androidi rakenduste jaoks.