Junior — Middle
Ինչպես իրականացնել ֆունկցիա, որը միաժամանակ բեռնում է տվյալներ երկու տարբեր աղբյուրներից որպեսինխոնոր?
sobes.tech AI
Պատասխան AI-ից
Android-ում երկու տարբեր աղբյուրներից տվյալների ասինխրոն բեռնումը կարող եք կատարել Kotlin Coroutines-ով: Սա թույլ կտա երկու գործողություն միաժամանակ սկսել և սպասել դրանց ավարտին:
Օրինակ՝
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) {
// Նպատակի արդյունքների մշակումը գլխավոր հոսքում
println("Արդյունք 1: $result1")
println("Արդյունք 2: $result2")
}
}
}
suspend fun loadFromSource1(): String {
// Տվյալների բեռնումի սիմուլյացիա
delay(1000)
return "Տվյալներ աղբյուրից 1"
}
suspend fun loadFromSource2(): String {
// Տվյալների բեռնումի սիմուլյացիա
delay(1500)
return "Տվյալներ աղբյուրից 2"
}
Այս օրինակով, երկու բեռնումային ֆունկցիաներ սկսվում են միաժամանակ, և արդյունքները մշակվում են դրանց ավարտից հետո։