Я создал подключенный объект, подобный этому:
final List<Integer> list = new ArrayList<Integer>();
for(int j=1;j<=3;j++)
list.add(j);
Observable<Integer> observable = Observable.fromIterable(list);
это наблюдаемое излучает 1, 2, 3
Теперь я преобразую его в connectableObservable таким образом:
observable.publish().autoConnect(2);
Поэтому я ожидаю, так как я передал в 2 для автоматического подключения, что он не будет запускаться, пока не будут найдены 2 подписчика. но вместо этого он выполняется только на 1 найденном подписчике.
позвольте мне показать вам, что я пытался:
observable.subscribe(new Consumer<Integer>() {
@Override
public void accept(Integer integer) {
Log.v("consumer1:", ""+integer);
}
});
Я ожидаю, что это НЕ печатает ничего в журнал. но вместо этого я получаю следующее:
consumer1:: 1
consumer1:: 2
consumer1:: 3
согласно документации по autoConnect (int
numberOfSubscribers):
* @param numberOfSubscribers the number of subscribers to **await** before calling connect
* on the ConnectableObservable. A non-positive value indicates
* an immediate connection.