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"
}
Σε αυτό το παράδειγμα, δύο λειτουργίες φόρτωσης ξεκινούν παράλληλα, και τα αποτελέσματα επεξεργάζονται μετά την ολοκλήρωσή τους.