Android 如何将这个RxJava可观测值转换为每200ms发出一次结果?

Android 如何将这个RxJava可观测值转换为每200ms发出一次结果?,android,rx-java,reactive-programming,Android,Rx Java,Reactive Programming,我可以观察到: Observable<String> concatenatedSets = Observable.just("1/5/8", "1/9/11/58/16/", "9/15/56/49/21"); concatenatedSets.flatMap(s -> Observable.from(s.split("/"))) .map(s -> Integer.valueOf(s))

我可以观察到:

Observable<String> concatenatedSets =
            Observable.just("1/5/8", "1/9/11/58/16/", "9/15/56/49/21");

    concatenatedSets.flatMap(s -> Observable.from(s.split("/")))
            .map(s -> Integer.valueOf(s))
            .subscribeOn(Schedulers.computation())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(i -> tvCounter.setText(String.valueOf(i)));
但是,我正在以另一种方式(使用
just
)创建我的可观察对象,那么如何混合这两种功能(
just
interval
),或者如何实现两次发射之间200 ms的暂停


PS:刚刚尝试了
延迟
-在我提供的时间之前,它将整个执行延迟了一次
zip可能是答案,但它非常混乱,所以我如何压缩我的可观测值和区间值?

observable-observable=observable.just(“1/5/8”、“1/9/11/58/16/”、“9/15/56/49/21”)
Observable<Integer> observable = Observable.just("1/5/8", "1/9/11/58/16/", "9/15/56/49/21")
                .flatMap(s -> Observable.from(s.split("/")))
                .map(s -> Integer.valueOf(s));

Observable<Integer> zippedObservable = Observable.zip(
                observable,
                Observable.interval(100, TimeUnit.MILLISECONDS),
                (number, interval) -> number);

zippedObservable
        .subscribeOn(Schedulers.computation())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(i -> tvCounter.setText(String.valueOf(i)));
.flatMap(s->Observable.from(s.split(“/”)) .map->Integer.valueOf(s)); Observable zippedObservable=obbservable.zip( 可见的, 可观察的时间间隔(100,时间单位毫秒), (编号、间隔)->编号); 可观察的 .subscribeOn(Schedulers.computation()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(i->tvCounter.setText(String.valueOf(i));
可观察的可观察的=可观察的。只是(“1/5/8”,“1/9/11/58/16/”,“9/15/56/49/21”)
.flatMap(s->Observable.from(s.split(“/”))
.map->Integer.valueOf(s));
Observable zippedObservable=obbservable.zip(
可见的,
可观察的时间间隔(100,时间单位毫秒),
(编号、间隔)->编号);
可观察的
.subscribeOn(Schedulers.computation())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(i->tvCounter.setText(String.valueOf(i));

您是否尝试了延迟运算符?或者这只是尝试了
延迟
——在我提供的时间之前,它将整体执行延迟了一次
zip
可能是答案,但它非常混乱,因此如何压缩可观测值和区间值?首先看一下自定义运算符。忘了注意到:)谢谢,如果我找不到使用
zip
的方法,我将使用此自定义运算符作为最后手段。您是否尝试了延迟运算符?或者这只是尝试了
延迟
——在我提供的时间之前,它将整体执行延迟了一次
zip
可能是答案,但它非常混乱,因此如何压缩可观测值和区间值?首先看一下自定义运算符。忘了注意到:)谢谢,如果我找不到使用
zip
的方法,我将使用此自定义运算符作为最后手段,谢谢!
.zip
中的函数参数做什么?该函数从两个可观察对象中获取两个项,并返回一个将由zip可观察对象执行的项。这是文件:谢谢!
.zip
中的函数参数做什么?该函数从两个可观察对象中获取两个项,并返回一个将由zip可观察对象执行的项。以下是文件:
Observable<Integer> observable = Observable.just("1/5/8", "1/9/11/58/16/", "9/15/56/49/21")
                .flatMap(s -> Observable.from(s.split("/")))
                .map(s -> Integer.valueOf(s));

Observable<Integer> zippedObservable = Observable.zip(
                observable,
                Observable.interval(100, TimeUnit.MILLISECONDS),
                (number, interval) -> number);

zippedObservable
        .subscribeOn(Schedulers.computation())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(i -> tvCounter.setText(String.valueOf(i)));