我正在做这样的事情:
return Observable.zip(
Observable.interval(0, MOVE_LENGTH_IN_MILLIS, TimeUnit.MILLISECONDS),
Observable.fromIterable(mySuperNiceArrayList),
new BiFunction<Long, ItemTest, ItemTest>() {
@Override
public ItemTest apply(@NonNull Long aLong, @NonNull ItemTest itemTest) throws Exception {
return itemTest;
}
}
)
我遇到的问题是,在发出最后一个项之后,立即调用onComplete。有没有办法推迟/延迟oncomplete方法的调用?
黑客解决方案是在arrayList中再添加一个元素,然后在onNext()中忽略它。
最佳答案
concat整个zip,空的Observable
延迟:
return Observable.zip(
Observable.interval(0, MOVE_LENGTH_IN_MILLIS, TimeUnit.MILLISECONDS),
Observable.fromIterable(mySuperNiceArrayList),
new BiFunction<Long, ItemTest, ItemTest>() {
@Override
public ItemTest apply(@NonNull Long aLong,
@NonNull ItemTest itemTest) throws Exception {
return itemTest;
}
}
).concatWith(Observable.<ItemTest>empty()
.delay(MOVE_LENGTH_IN_MILLIS, TimeUnit.MILLISECONDS));
编辑延迟应该发生在压缩之后。