嗨,我对rxJava非常幼稚,所以如果我的理解正确,请告诉我。根据我的理解,如果我将背压策略与LATEST标志一起使用,则应该获得最新的值。因此,我有一个列表,我在订阅者中使用flowable,但它仍在onNext中打印所有值。还请让我知道如何测试这种反压策略,因为我没有实时数据。
以下是我的代码
Observable.just(listObj).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()).
flatMap(new Function<List<String>, Observable<String>>() {
@Override
public Observable<String> apply(List<String> ints) {
return Observable.fromIterable(ints);
}
}).toFlowable(BackpressureStrategy.LATEST).subscribe(new Subscriber<String>() {
@Override
public void onSubscribe(Subscription s) {
s.request(Long.MAX_VALUE);
}
@Override
public void onNext(String s) {
Log.d("Value", s);
}
@Override
public void onError(Throwable t) {
}
@Override
public void onComplete() {
}
});
}
//////////// 以下是创建arraylist的简单方法
private ArrayList<String> createListForReturn() {
try {
if (listObj != null) {
listObj.add("Thanks");
listObj.add("fine");
listObj.add("working");
listObj.add("is");
listObj.add("Flowable");
listObj.add("Now");
listObj.add("Flowable");
listObj.add("For");
listObj.add("Programme");
listObj.add("RxJava");
listObj.add("Second");
listObj.add("My");
listObj.add("is");
listObj.add("This");
listObj.add(" ");
}
return listObj;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}