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ā.