Я использую MVVM для своего приложения. Я хочу получить контекст в моей модели представления или в хранилище лучше.
Давайте представим, что у меня есть класс UserRepository ()
public class UserRepository {
UserDao userDao;
Executor executor;
public UserRepository() {
this.userDao = AppDatabase.getAppDatabase(MApplication.context).userDao();
executor = Executors.newSingleThreadExecutor();
}
public void clearUserCached() {
executor.execute(() -> {
userDao.deleteAll();
});
}
public void loginUser(String email, String password) {
getAPIService().login(new LoginRequest(email, password))
.compose(RxUtils.applySchedulers())
.subscribe(
(LoginResponse response) -> {
executor.execute(() -> {
userDao.insert(response.getUser());
});
},
(Throwable e) -> {
e.printStackTrace();
}
);
}
public LiveData<User> getUser() {
return userDao.getUser();
}
}
Я знаю, что использование MApplication.context
не очень хороший подход. Это утечка памяти.
Как еще можно получить контекст?
Примечание: я не использую Dagger2