В ViewModel наблюдайте за данными из репозитория, лучший способ хранить подписки
Учитывая следующий пример:
class MyViewModel extends ViewModel {
@Inject DataRepository repository;
private LiveData<Model> model;
private CompositeDisposable disposables;
public LiveData<Model> observeModel() {
return model;
}
public void getData() {
disposables.add(repository.getData()
.subscribe(data -> model.setValue(data));
}
public void onCleared() {
disposables.dispose();
}
}
В пользовательском интерфейсе есть кнопка, которая связана с getData()
функция, которая может быть нажата сто раз. В итоге мы получим 100 подписок в Disposable
, Это лучшая практика?