Sobes.tech
Junior — Middle

Cum se asigură executarea operațiunilor astfel încât să nu blocheze interfața utilizatorului?

sobes.tech AI

Răspuns de la AI

Pentru ca operațiile să nu blocheze interfața utilizatorului pe Android, trebuie să le executați într-un fir de fundal, nu în firul principal (UI). Pentru aceasta, puteți folosi:

  • AsyncTask (învechit, dar încă prezent în codul vechi)
  • HandlerThread sau Handler
  • ExecutorService
  • Corutine Kotlin (metoda modernă și recomandată)
  • RxJava

De exemplu, cu corutine, puteți face astfel:

GlobalScope.launch(Dispatchers.Main) {
    val result = withContext(Dispatchers.IO) {
        // Operație lungă, de exemplu, o solicitare de rețea
        fetchData()
    }
    // Actualizarea UI cu rezultatul
    textView.text = result
}

Astfel, munca grea se face în firul de fundal (IO), iar actualizarea interfeței se face în firul principal.