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