با سلام خدمت استاد و دوستان گل
سوالم این هستش که ما در گذشته که کلاس viewModel رو خودمون میساختیم و از viewModelProvider استفاده نمیکردیم ، اگر لازم بود که کلاسی مانند appDatabase رو به viewModel پاس بدیم و کلاس appDatabase نیاز به context داشت ، ما میتونستیم با استفاده از اکتیویتی یا فرگمنت ، context رو پاس بدیم
اما اکنون که از اینترفیس viewModelProvider.Factory برای پاس دادن پارامترهای کانستراکتور استفاده میکنیم ، راه استانداردی وجود داره که ما بتونیم context رو پاس بدیم (البته بدون استفاده از لایبریهای Dagger یا Koin)
سلام وقت بخیر
برای اینکار میتونین بجای اینکه از ViewModel ارث بری کنید از AndroidViewModel ارث بری کنید .
و application.getApplicationContext(); یک اینتنس از context به شما میدهد
موفق باشید.
نمونه کد:
public class NameViewModel extends AndroidViewModel {
public NameViewModel(@NonNull Application application) {
super(application);
application.getApplicationContext();
}
}