Sobes.tech
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) бажарилади, ва интерфейс янгиланиши асосий тўрда амалга оширилади.