Я изо всех сил пытаюсь найти решение для вызова наблюдателя liveata несколько раз в одном действии, а не для создания нескольких его экземпляров, это приводит к проблеме, когда база данных изменяется, я получаю обратные вызовы из всех экземпляров.
ViewModel
public class RatingsViewModel extends AndroidViewModel {
private RatingsRepository ratingsRepository;
private LiveData<List<Rating>> ratingsList;
public RatingsViewModel(Application application) {
super(application);
ratingsRepository = new RatingsRepository(application);
}
public LiveData<List<Rating>> getRatingsByDate(LocalDate date) {
ratingsList = ratingsRepository.getActivitiesByDate(date);
return ratingsList;
}
Activity
private void getRatingsByDate(LocalDate date) {
ratingsViewModel.getRatingsByDate(date).observe(this, activities -> {
// list populating stuff
});
}
Я пытался вызвать hasObserver (), но он возвращает false, поэтому я не могу удалить наблюдателей.