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), իսկ ինտերֆեյսի թարմացումը՝ գլխավոր հոսքում։