RxJava 如何从具有间隔的列表中发出对象

RxJava how to emmit object from list with interval

我正在尝试以 1 秒的间隔从列表中发射对象。

AppObservable.bindFragment(this, Observable.from(actionButtonList))
    .subscribeOn(Schedulers.newThread())
    .flatMap(ab -> Observable.defer(() -> Observable.just(ab).delay(1000, TimeUnit.MILLISECONDS)))
    .observeOn(AndroidSchedulers.mainThread())
    .doOnEach(notification -> ObjectAnimator.ofFloat(notification.getValue(), "alpha", 1, 0).setDuration(500).start())
    .subscribe(ab -> Log.d(TAG, ab.toString()));

使用这种方法,doOnEach 是同时执行的。我做错了什么?

您可以将计时器压缩到列表中:

Observable
.timer(1, 1, TimeUnit.SECONDS).onBackpressureDrop()
.zipWith(actionButtonList, (t, b) -> b)
.subscribeOn(...)
.observeOn(...)
.doOnNext(...)
.subscribe(...)