Sobes.tech
Junior — Middle

Ինչպե՞ս ապահովել, որ գործողությունները կատարվեն այնպես, որ դրանք չխոչընդոտեն օգտագործողի ինտերֆեյսին։

sobes.tech AI

Պատասխան AI-ից

Android-ում գործառույթները օգտագործողի ինտերֆեյսը չխոչընդոտելու համար, դրանք պետք է կատարվեն ֆոնային հոսքում, ոչ թե հիմնական (UI) հոսքում։ Դրա համար կարող եք օգտագործել՝

  • AsyncTask (հնացած, բայց հաճախ հանդիպում է հին կոդում)
  • HandlerThread կամ Handler
  • ExecutorService
  • Kotlin Coroutines (նորարար և առաջարկվող մեթոդ)
  • RxJava

Օրինակ, կորյուտների միջոցով կարելի է անել հետևյալը՝

GlobalScope.launch(Dispatchers.Main) {
    val result = withContext(Dispatchers.IO) {
        // Ուժեղ գործողություն, օրինակ՝ ցանցային հարցում
        fetchData()
    }
    // UI-ի թարմացում արդյունքով
    textView.text = result
}

Այսպիսով, ծանր աշխատանքը կատարվում է ֆոնային հոսքում (IO), իսկ ինտերֆեյսի թարմացումը՝ գլխավոր հոսքում։