Sobes.tech
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
}