Я только начал изучать RxJava и думать реактивно. Я нашел статью (7 советов), в которой говорится, что предметы следует использовать только в крайнем случае или в качестве первой реализации, и я подумал. На данный момент у меня есть один PublishSubject
PublishSubject.create()
.scan(0, (a, b) -> a + 1).subscribe(replaySubject)
Он каждый раз увеличивает значение на 1 и подписывается replaySubject.
Воспроизвести Тему.создать();
Это просто печатает значение. Итак, в начале у меня есть 0, затем на каждые PublishSubject.onNext
я увеличиваю значение, поэтому я получил 1, 2 и т. д. Поскольку это replaySubject, я получаю всю цепочку. Однако я подумал, можно ли это сделать без субъектов? Я читал RxJava Wiki и операторов, но не могу понять, как это можно сделать.
Обновлять
Таким образом, псевдокод, который я пытаюсь заархивировать, каким-то образом имеет одну наблюдаемую, начинающуюся с 1.
Observable.just(1)
Теперь у меня есть прослушиватель кликов
OnClick{ }
И каждый раз, когда я нажимаю на какую-либо кнопку, я хочу видеть все предыдущие числа + 1, поэтому 1, затем 1, 2, следующие 1,2,3 и т. д. Я пробовал с ConnectableObservator.replay
, однако это вообще не удалось. И внутри слушателя я пытался сначала добавить сканирование в свой Observable, чтобы увеличить значение, а затем подписаться, чтобы я мог его распечатать. Но и это не работает. Черт, я думаю, что я в черном углу и неправильно понял идею наблюдаемых...
PublishSubject
? - person zsxwing   schedule 13.10.2014observable.scan(0, (a, b) -> a + 1)
не работает? - person zsxwing   schedule 13.10.2014Observable.just(0)
и событие нажатия кнопки, теперь у меня есть один подписчик, который подписывается на мойObservable
и печатает его значение. Итак, он печатает 0. Теперь я при каждом нажатии кнопки хочу увеличить это значение и отправить его всем подписчикам, возможно, я еще не понял всей идеи. - person user3274539   schedule 13.10.2014