Junior — Middle
Πώς διασφαλίζετε ότι οι λειτουργίες εκτελούνται με τρόπο που δεν μπλοκάρουν το περιβάλλον χρήστη;
sobes.tech AI
Απάντηση από AI
Για να μην μπλοκάρουν οι λειτουργίες το περιβάλλον χρήστη στο Android, πρέπει να τις εκτελείτε σε ένα φόντο, όχι στο κύριο (UI) νήμα. Για αυτό, μπορείτε να χρησιμοποιήσετε:
- AsyncTask (παρωχημένο, αλλά συχνά συναντάται σε παλιό κώδικα)
- HandlerThread ή Handler
- ExecutorService
- Kotlin Coroutines (σύγχρονος και συστηνόμενος τρόπος)
- RxJava
Για παράδειγμα, με τις coroutines, μπορείτε να το κάνετε έτσι:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// Μακράς διάρκειας λειτουργία, π.χ. αίτημα δικτύου
fetchData()
}
// Ενημέρωση UI με το αποτέλεσμα
textView.text = result
}
Έτσι, η βαριά εργασία εκτελείται σε ένα φόντο (IO), και η ενημέρωση του περιβάλλοντος γίνεται στο κύριο νήμα.