Junior — Middle
Hogyan biztosítható, hogy a műveletek végrehajtása ne blokkolja a felhasználói felületet?
sobes.tech MI
Válasz az MI-től
Annak érdekében, hogy a műveletek ne blokkolják a felhasználói felületet Androidon, azokat háttérszálon kell végrehajtani, nem a fő (UI) szálon. Ehhez használhatja:
- AsyncTask (elavult, de még gyakran előfordul régi kódban)
- HandlerThread vagy Handler
- ExecutorService
- Kotlin Coroutines (modern és ajánlott módszer)
- RxJava
Például, korutinok segítségével így lehet csinálni:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// Hosszú művelet, például hálózati kérés
fetchData()
}
// UI frissítése az eredménnyel
textView.text = result
}
Így a nehéz munka háttérszálon (IO) történik, és a felület frissítése a fő szálon történik.