Junior — Middle
İstifadəçi interfeysini bloklamadan əməliyyatların yerinə yetirilməsini necə təmin etmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Android-də əməliyyatların istifadəçi interfeysini bloklamaması üçün, onları fon axınında, əsas (UI) axınından kənarda yerinə yetirmək lazımdır. Bunun üçün aşağıdakıları istifadə etmək olar:
- AsyncTask (köhnəlmiş, amma köhnə kodda çox rast gəlinir)
- HandlerThread və ya Handler
- ExecutorService
- Kotlin Coroutines (müasir və tövsiyə olunan üsul)
- RxJava
Məsələn, korutinlər vasitəsilə bunu belə etmək olar:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// Uzun müddətli əməliyyat, məsələn, şəbəkə sorğusu
fetchData()
}
// UI-ni yeniləmək üçün nəticə ilə
textView.text = result
}
Beləliklə, ağır iş fon axınında (IO) yerinə yetirilir, və interfeys yeniləməsi əsas axında həyata keçirilir.