如何实现RxJava的模拟定时器功能?

更新于
2026-10-12 10:51:04
1阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计173个文字,预计阅读时间需要1分钟。

如何实现RxJava的模拟定时器功能?

plaintext使用Observable.interval每隔20毫秒发射一次事件,订阅在新的线程上,并在主线程上处理结果。将事件映射为每20毫秒增加1的整数。

如何实现RxJava的模拟定时器功能?

gistfile1.txt

Observable.interval(0, 20, TimeUnit.MILLISECONDS) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .map(new Func1 () { @Override public Integer call(Long aLong) { Long y = (aLong + 1) / 20; return y.intValue(); } }) // .delay(new Func1 >() { // @Override // public Observable call(Integer integer) { // return null; // } // }) .scan(new Func2 () { @Override public Integer call(Integer integer, Integer integer2) { return null; } }) .take(mQue + 1) .doOnSubscribe(new Action0() { @Override public void call() { setText(String.valueOf(0.0)); } }) .subscribe(new Subscriber () { int x = 20; @Override public void onStart() { super.onStart(); x = mQue; } @Override public void onCompleted() { setText(String.valueOf(num)); } @Override public void onError(Throwable e) { Logger.d("error " + e.getMessage()); } @Override public void onNext(Integer integer) { --x; Logger.d(String.valueOf(integer)); setText(String.valueOf(v * integer)); } });

本文共计173个文字,预计阅读时间需要1分钟。

如何实现RxJava的模拟定时器功能?

plaintext使用Observable.interval每隔20毫秒发射一次事件,订阅在新的线程上,并在主线程上处理结果。将事件映射为每20毫秒增加1的整数。

如何实现RxJava的模拟定时器功能?

gistfile1.txt

Observable.interval(0, 20, TimeUnit.MILLISECONDS) .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .map(new Func1 () { @Override public Integer call(Long aLong) { Long y = (aLong + 1) / 20; return y.intValue(); } }) // .delay(new Func1 >() { // @Override // public Observable call(Integer integer) { // return null; // } // }) .scan(new Func2 () { @Override public Integer call(Integer integer, Integer integer2) { return null; } }) .take(mQue + 1) .doOnSubscribe(new Action0() { @Override public void call() { setText(String.valueOf(0.0)); } }) .subscribe(new Subscriber () { int x = 20; @Override public void onStart() { super.onStart(); x = mQue; } @Override public void onCompleted() { setText(String.valueOf(num)); } @Override public void onError(Throwable e) { Logger.d("error " + e.getMessage()); } @Override public void onNext(Integer integer) { --x; Logger.d(String.valueOf(integer)); setText(String.valueOf(v * integer)); } });