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(...)
我正在尝试以 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(...)