Junior — Middle
Оқими асосӣ метавонад дархостҳои шабакавиро бидуни бастан ё мушкилоти иҷроиш иҷро кунад?
sobes.tech AI
Ҷавоб аз AI
در اندروید، نخ اصلی (UI) نباید مستقیماً درخواستهای شبکهای انجام دهد، زیرا این منجر به قفل شدن رابط کاربری و کاهش عملکرد برنامه میشود. عملیاتهای شبکه ممکن است زمان قابل توجهی ببرند، و اگر در نخ اصلی انجام شوند، برنامه پاسخگو به اقدامات کاربر نخواهد بود.
برای جلوگیری از قفل شدن، از موارد زیر استفاده میشود:
- وظایف ناهمزمان (AsyncTask، هرچند اکنون منسوخ شده است)
- نخها (Thread، HandlerThread)
- کتابخانههایی با پشتیبانی از ناهمزمانی (مثلاً Retrofit با Coroutines)
- Kotlin Coroutines یا RxJava
مثال با Kotlin Coroutines:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// اجرای درخواست شبکه در پسزمینه
fetchDataFromNetwork()
}
// بهروزرسانی UI با نتیجه
updateUI(result)
}
به این صورت، نخ اصلی قفل نمیشود و برنامه پاسخگو باقی میماند.