美文网首页Android开发笔记
RxJava实现间隔调用

RxJava实现间隔调用

作者: 道阻且长_行则将至 | 来源:发表于2019-06-25 14:30 被阅读0次

RxJava实现间隔调用

代码

    Observable.interval(1, TimeUnit.SECONDS, Schedulers.trampoline())
    .take(6)
    .subscribe(new Observer<Long>() {
        @Override
        public void onSubscribe(Disposable d) {
            System.out.println("onSubscribe");
        }

        @Override
        public void onNext(Long value) {
            System.out.println("onNext:" + value);
        }

        @Override
        public void onError(Throwable e) {
            System.out.println("onError");
        }

        @Override
        public void onComplete() {
            System.out.println("onComplete");
        }
    });

如果涉及到对UI的操作 需要设置好线程

 Observable.interval(1, TimeUnit.SECONDS, Schedulers.trampoline())
                  .take(59)
                  .subscribeOn(Schedulers.io())                 // io线程
                  .observeOn(AndroidSchedulers.mainThread())    // 主线程
                  .subscribe(new Observer<Long>()
                  {
                      @Override
                      public void onCompleted()
                      {
                          if (activityRegBinding.etPhoneNumber.getText().length() == 11)
                          {
                              mainView.setSendBtnState(2);
                          } else
                          {
                              mainView.setSendBtnState(1);
                          }
                      }

                      @Override
                      public void onError(Throwable e)
                      {

                      }

                      @Override
                      public void onNext(Long aLong)
                      {
                          activityRegBinding.tvSendCode.setText(String.format("(%ss)后重发", (59 - aLong) + ""));
                      }
                  });

相关文章

网友评论

    本文标题:RxJava实现间隔调用

    本文链接:https://www.haomeiwen.com/subject/wjvnbqtx.html