Не видя ваш код, трудно ответить на этот вопрос, но позвольте мне попробовать. Кажется правильным, что индикатор отображается в doOnSubscribe()
и удаляется при любом вызове, когда завершается выборка данных, я полагаю, метод onResult()
или onSuccess()
(я давно работал с Rx). Поэтому, когда вы переходите к указанному фрагменту / операции c, вызывается метод, так что это правильно.
Таким образом, чтобы не допустить, чтобы вы могли
a) просто показать индикатор загрузки с задержкой, чтобы он не был виден, когда результат приходит из памяти (не так здорово, но точно работает)
b) убедитесь, что вы не используете повторно одиночные данные, например, очистив их при переходе (это, вероятно, приведет к вызову API каждый раз, что не нужно, так что это тоже не так уж и здорово)
c) не отображать индикатор в doOnSubscribe()
, а только при выполнении вызова API, поэтому он не будет отображаться, когда результаты уже локальны.
d) сохраните результаты в другом поле, чтобы вы не полагались на одиночный код или не добавляли флаг, когда вы уже выполнили вызов API (зависит от вашего кода, если здесь есть смысл)