- 1 سال قبل
- علیرضا نصراله زاده
viewModelScope در کوروتین ها
viewModelScope یک اجزای معرفی شده در Jetpack ViewModel است که در اندروید استودیو استفاده میشود. viewModelScope یک CoroutineScope است که به طور پیش فرض به ViewModel متصل شده است و شما را قادر میسازد که کوروتینها را در محدوده عمر ViewModel اجرا کنید.
وقتی شما کوروتینها را با استفاده از viewModelScope اجرا میکنید، زمانی که ViewModel معرفی شده توسط Activity یا Fragment تخریب میشود، کوروتینها نیز لغو میشوند. این به معنی این است که شما نیازی به دستی لغو کردن کوروتینها ندارید و viewModelScope به طور خودکار این کار را انجام میدهد.
برای استفاده از viewModelScope در کلاس ViewModel، ابتدا از کتابخانه kotlinx.coroutines-android یا kotlinx.coroutines را به پروژه خود اضافه کنید. سپس در داخل ViewModel خود، متغیر viewModelScope را تعریف کنید و از آن برای اجرای کوروتینها استفاده کنید. به عنوان مثال:
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import kotlinx.coroutines.launch
class MyViewModel : ViewModel() {
fun doSomething() {
viewModelScope.launch {
// اجرای کوروتین در محدوده عمر ViewModel
// کد اجرایی کوروتین
}
}
}
در مثال بالا، کوروتین با استفاده از viewModelScope.launch() اجرا میشود و هنگامی که ViewModel تخریب میشود، کوروتین نیز لغو میشود.
استفاده از viewModelScope در کوروتینها به شما کمک میکند مشکلات مربوط به منابع نامنسجم و نشتی منابع را در ViewModel ها کنترل کنید و بهترین عملکرد را در مدیریت کوروتینها در ViewModel ها به دست آورید.