Sobes.tech
Junior — Middle

Kako osigurati da operacije budu izvršene tako da ne blokiraju korisnički interfejs?

sobes.tech АИ

Одговор од АИ

Да операције не блокирају кориснички интерфејс на Android-у, потребно је да их извршавате у позадинском току, а не у главном (UI) току. За то можете користити:

  • AsyncTask (преостало, али често се налази у старом коду)
  • HandlerThread или Handler
  • ExecutorService
  • Kotlin Coroutines (модеран и препоручени начин)
  • RxJava

На пример, коришћењем корутиних, можете то урадити овако:

GlobalScope.launch(Dispatchers.Main) {
    val result = withContext(Dispatchers.IO) {
        // Дуга операција, нпр. захтев према мрежи
        fetchData()
    }
    // Ажурирање UI са резултатом
    textView.text = result
}

Овим се тешки послови извршавају у позадинском току (IO), а ажурирање интерфејса у главном току.