Junior — Middle
Кандай камсыз кылса болот, иш-аракеттер колдонуучу интерфейсин тоскоолдук кылбайт?
sobes.tech AI
AIден жооп
Androidда амалдар пайдаланушы интерфейсін блокламаслиги учун, уларни фон тўрда бажариш керак, асосий (UI) тўрда эмас. Бу учун қуйидагилардан фойдаланиш мумкин:
- AsyncTask (кўҳна, аммо ҳали ҳам Eskirgan, лекин кўп учрайди eski кодда)
- HandlerThread ёки Handler
- ExecutorService
- Kotlin Coroutines (замонавий ва тавсия этилган усул)
- RxJava
Масалан, корутинлар ёрдамида буни қила оласиз:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// Узоқ вақт оладиган амал, масалан, тармоқ сўрови
fetchData()
}
// UIни янгилаш натижасида
textView.text = result
}
Шундай қилиб, оғир иш фон тўрда (IO) бажарилади, ва интерфейс янгиланиши асосий тўрда амалга оширилади.