RxJava 1 Android:如何创建计时器序列?
我想在android上用RxJava实现以下功能: 类时间单位包含一个类序列列表(时间单位有一个序列列表),该序列具有整数属性“length” 序列长度为1-10秒 调用TimeUnit run()方法时,计时器启动并执行列表中的第一个序列。在序列2之后,等等 例如:RxJava 1 Android:如何创建计时器序列?,android,timer,rx-java,Android,Timer,Rx Java,我想在android上用RxJava实现以下功能: 类时间单位包含一个类序列列表(时间单位有一个序列列表),该序列具有整数属性“length” 序列长度为1-10秒 调用TimeUnit run()方法时,计时器启动并执行列表中的第一个序列。在序列2之后,等等 例如: TimeUnit - Sequence 1 -> 10 seconds - Sequence 2 -> 4 seconds - Sequence 3 -> 5 seconds 如何在RxJava中实
TimeUnit
- Sequence 1 -> 10 seconds
- Sequence 2 -> 4 seconds
- Sequence 3 -> 5 seconds
如何在RxJava中实现此输出:
TimeUnit started
Starting "Sequence 1"
Sequence 1 -> second 1
Sequence 1 -> second 2
Sequence 1 -> second 3
...
Starting "Sequence 2"
Sequence 2 -> second 1
....
TimeUnit completed in 19 seconds
我尝试了许多Rx技术,如interval()、concatMap()、flatMap()。。。但是没有成功
您将如何为此设置骨架?Rx是否能够每隔一段时间接收信号
我没有代码片段,因为没有有效的解决方案如果您不介意使用一点非RxJava的代码,您可以使用以下解决方案:
public Observable<String> createObservable(TimeUnit timeUnit){
Handler handler = new Handler();
Observable<String> observable = Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
for(Sequence sequence : TimeUnit.getSequenceList()){
Runnable runnable = () -> {
subscriber.onNext(sequence.length);
};
handler.postDelayed(runnable, sequence.lenth);
}
}
});
return observable;
}
公共可观察createObservable(时间单位时间单位){
Handler=newhandler();
Observable-Observable=Observable.create(newobservable.OnSubscribe()){
@凌驾
公用无效呼叫(用户)