Sobes.tech
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.