Junior — Middle
Kuidas tagada, et operatsioonid toimuvad nii, et need ei blokeeri kasutajaliidest?
sobes.tech AI
Vastus AI-lt
Et vältimaks, et operatsioonid blokeerivad kasutajaliidest Androidis, tuleb neid teha taustal, mitte peamisel (UI) lõngal. Selleks saab kasutada:
- AsyncTask (vana, kuid endiselt levinud vanas koodis)
- HandlerThread või Handler
- ExecutorService
- Kotlin Coroutines ( kaasaegne ja soovitatav meetod)
- RxJava
Näiteks, korutinite abil saab teha järgmiselt:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// Pikk operatsioon, näiteks võrgupäring
fetchData()
}
// UI uuendamine tulemusega
textView.text = result
}
Nii toimub raske töö taustal (IO), ning kasutajaliidese uuendamine toimub peamisel lõngal.