rx-java - 如何在RxJava中的动态列表上创建观察者?

标签 rx-java

我需要在一个不断变化的数组(添加元素)上创建一个Observer。

我正在使用Obserable.from(Iterable),但似乎它在创建时就在ArrayList上创建了Observable。

每当ArrayList获取新元素时,我都需要通知Observer并执行Action。

最佳答案

妳去感谢RxJava Google Group上的DávidKarnok

import java.util.ArrayList;
import java.util.List;

import rx.Observable;
import rx.subjects.PublishSubject;

public class ObservableListExample {

    public static class ObservableList<T> {

        protected final List<T> list;
        protected final PublishSubject<T> onAdd;

        public ObservableList() {
            this.list = new ArrayList<T>();
            this.onAdd = PublishSubject.create();
        }
        public void add(T value) {
            list.add(value);
            onAdd.onNext(value);
        }
        public Observable<T> getObservable() {
            return onAdd;
        }
    }

    public static void main(String[] args) throws Exception {
        ObservableList<Integer> olist = new ObservableList<>();

        olist.getObservable().subscribe(System.out::println);

        olist.add(1);
        Thread.sleep(1000);
        olist.add(2);
        Thread.sleep(1000);
        olist.add(3);
    }
}

关于rx-java - 如何在RxJava中的动态列表上创建观察者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28816691/

相关文章:

android - 管理来自不同 rx.Observables 的不同异常

java - 如何在时间间隔内使用自定义类作为 Observable 和 fire 方法

android - Observer.onError 触发不一致

android - 用 RxJava 替换监听器

java - Android RxJava Observable.interval() 不会停止发射项目

java - 如何在 Flowable.generate 中使 Files.lines AutoCloseable

java - 使用 RxJava 的生产者-消费者

java - RxJava 将新对象添加到流中

java - 在 RxJava 中连接两个大型数据集

java - Observable.map 抛出错误未在订阅中捕获