Какой эквивалент PreExecution в RXJava2? - PullRequest
0 голосов
/ 02 июля 2018

Я создаю Observable, который запускается каждые 20 секунд. Мне нужно показывать индикатор выполнения (компонент пользовательского интерфейса) перед каждым раундом, в AsyncTask я использовал метод onPreExecute. Как я могу сделать это в RXJava2?

 disposables = Observable
 .interval(0, 20, TimeUnit.SECONDS)
  .doOnNext(n -> MainCulc_actions())
  .subscribeOn(Schedulers.io())   // Run on a background thread
  .observeOn(AndroidSchedulers.mainThread())     // Be notified on the main thread
   .subscribeWith(new DisposableObserver<Long>() {

      @Override
      public void onError(Throwable e) {
      }
      @Override
      public void onComplete() {
      }
      @Override
      public void onNext(Long res) {
        UpdateTheUI();
        avi.smoothToHide();
      }
    });

1 Ответ

0 голосов
/ 03 июля 2018

Вы можете попробовать doOnSubscribe. Например

disposables = Observable
.interval(0, 20, TimeUnit.SECONDS)
.doOnNext(n -> MainCulc_actions())
.subscribeOn(Schedulers.io())   // Run on a background thread
.observeOn(AndroidSchedulers.mainThread())     // Be notified on the main thread
.doOnSubscribe(s -> avi.showUI)
.subscribeWith(new DisposableObserver<Long>() {

  @Override
  public void onError(Throwable e) {
  }
  @Override
  public void onComplete() {
  }
  @Override
  public void onNext(Long res) {
    UpdateTheUI();
    avi.smoothToHide();
  }
});
...