Sobes.tech
Junior — Middle

Kā īstenot funkciju, kas vienlaikus asinhroni veic datu ielādi no diviem dažādiem avotiem?

sobes.tech AI

Atbilde no AI

Lai asinhroni datu ielāde no diviem dažādiem avotiem Android platformā, jūs varat izmantot Kotlin Coroutines. Tas ļaus vienlaikus palaist divas operācijas un gaidīt to pabeigšanu.

Piemērs:

import kotlinx.coroutines.*

fun loadData() {
    CoroutineScope(Dispatchers.IO).launch {
        val deferred1 = async { loadFromSource1() }
        val deferred2 = async { loadFromSource2() }

        val result1 = deferred1.await()
        val result2 = deferred2.await()

        withContext(Dispatchers.Main) {
            // Rezultātu apstrāde galvenajā pavedienā
            println("Rezultāts 1: $result1")
            println("Rezultāts 2: $result2")
        }
    }
}

suspend fun loadFromSource1(): String {
    // Datu ielādes simulācija
    delay(1000)
    return "Avota 1 dati"
}

suspend fun loadFromSource2(): String {
    // Datu ielādes simulācija
    delay(1500)
    return "Avota 2 dati"
}

Šajā piemērā divas ielādes funkcijas tiek palaistas paralēli, un rezultāti tiek apstrādāti pēc to pabeigšanas.