Учитывая это:OnCompleted не вызывается при использовании ConnectableObservable и
TestSubscriber subscriber = new TestSubscriber();
ConnectableObservable<Integer> observable = Observable.just(1,2,3,4,5).publish();
observable.startWith(observable).subscribe(subscriber);
observable.connect();
Абонент получает 1,2,3,4,5 в onNext, но не получает OnCompleted.
Если изменить код на:
Observable.just(1,2,3,4,5).replay()
то абонент получает 1,2,3,4,5,1,2,3,4,5 в onNext, а затем OnCompleted, а также которые это то, что я ожидаю.
Для меня это должно вести себя одинаково в обоих сценариях, поскольку все подписки происходят до вызова .connect() в первом примере.
Может кто-то прояснить, почему первый сценарий ведет себя по-другому?
В данном конкретном случае, 'публиковать()' отсоединяется после первого раунда, и вы ждете вас, чтобы соединиться снова для второго. – akarnokd