У меня есть Fragment
, который содержит Presenter
.
Каждый раз, когда пользователь перемещает приложение в фоновый режим или делает приостановку \ возобновление работы телефона, моя логика в Presenter
вызывает автоматически, потому что я отключаю и присоединяю докладчика в onResume()
и в onPause()
методах, чтобы сделатьВедущий спит, когда пользователь не взаимодействует с экраном.Вопрос в том, можно ли повторно подписаться на Observable, но не звонить телу subscribe()
в первый раз?Потому что теперь каждый раз, когда я поворачиваю устройство, я вижу индикатор загрузки, тогда я не хочу его видеть.
Псевдокод:
Фрагмент:
@Override
public void onResume() {
super.onResume();
graphPresenter.attach(this);
}
@Override
public void onPause() {
super.onPause();
graphPresenter.detach(this);
}
Ведущий:
@Override
protected void onAttach(View view) {
final Observable<Data> dataObservable =
dataRepository.getDataIdentifier()
.switchMap(id -> {
//this calls each time on rotation =(
view.showDataLoading();
return repository.loadData(id);
});
dataObservable.subscribe(data -> {
view.showData(data);
view.hideDataLoading();
});
}
Мои данные загружаются не так часто, поэтому я не хочу видеть индикатор загрузки.Просто хочу видеть старые данные сразу после поворота.
PS Я пытался установить setRetainInstance(true)
, но это не помогло.