Junior — Middle
Mis juhtub, kui teete võrgupäringu programmi peas olevas lõimes?
sobes.tech AI
Vastus AI-lt
Kui teete võrgupäringu Androidi rakenduse peamises (UI) lõimes, põhjustab see kasutajaliidese lukustamise kuni päringu lõpuni. Selle tulemusena ei reageeri rakendus kasutaja tegevustele, mis võib põhjustada ANR-i (Application Not Responding) – süsteemi teate jäädava külmumise kohta.
Seetõttu tuleks võrgutegevused teha taustalõimes, näiteks kasutades AsyncTask, Thread, Coroutine või Retrofit sarnaseid teeke, mis toetavad asünkroonsust.
Näide Kotlin Coroutine'iga:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// võrgupäring
}
// UI uuendamine tulemusega
}