Sobes.tech
Junior — Middle

Kā nodrošināt, lai operācijas tiktu veiktas tā, lai tās neapturētu lietotāja saskarni?

sobes.tech AI

Atbilde no AI

Lai novērstu lietotāja saskarnes bloķēšanu Android ierīcē, tās ir jāizpilda fonā, nevis galvenajā (UI) pavedienā. Tam var izmantot:

  • AsyncTask (novecojis, bet joprojām sastopams vecajā kodā)
  • HandlerThread vai Handler
  • ExecutorService
  • Kotlin Coroutines (mūsdienīgs un ieteicams veids)
  • RxJava

Piemēram, ar korutīnām to var izdarīt šādi:

GlobalScope.launch(Dispatchers.Main) {
    val result = withContext(Dispatchers.IO) {
        // Ilga darbība, piemēram, tīkla pieprasījums
        fetchData()
    }
    // UI atjaunināšana ar rezultātu
    textView.text = result
}

Tādējādi smagais darbs tiek veikts fonā (IO), bet saskarnes atjaunināšana – galvenajā pavedienā.