为ArrayList的每个元素触发onNext,而不是使用RXJava触发一次

时间:2018-12-16 23:54:59

标签: java android rx-java2

我正在使用ArrayList模式监听类型为Object的{​​{1}}:

Observable

在我的 onCreate 方法中:

//Instances 
private List<Store> storeList = new ArrayList<>();
private static PublishSubject<List<Store>> publishStoreListSubject = PublishSubject.create();

private Observer<List<Store>> storeListObserver = new Observer<List<Store>>() {
        @Override
        public void onSubscribe(Disposable d) { }

    @Override
    public void onNext(List<Store> storeList) {
        //Do work ....
    }

    @Override
    public void onError(Throwable e) { }

    @Override
    public void onComplete() { }
};

在我的客户端服务器方法中,我具有以下内容:

@Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        publishStoreListSubject.subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread()).subscribe(storeListObserver);

}

问题:触发每个商品的onNext,而不是将整个storeList作为一个单位触发。例如:如果我有4家商店,则onNext被触发4次。

顺便说一句,我的onRetrieveStores中没有任何循环的机制

1 个答案:

答案 0 :(得分:0)

如果要在发射最后一个项目时执行某些操作,则应实现onComplete()。每个发出的新项目都会调用onNext()。