如何在 rxjava 中调用与 interval() 一起使用的 onComplete()

how to call onComplete() used with interval() in rxjava

我是 rxjava 的新手。

implementation "io.reactivex.rxjava2:rxjava:2.2.8"
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'

我正在与 interval()

合作

我不知道如何在rxjava的onComplete()中不阻塞地显示视图UI线程 .

在下面的代码中从onNext()调用onComplete()

Observable
                    .interval(0, 5, TimeUnit.SECONDS)
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(aLong -> {
                        Log.d("", "onNext()");
                    }, Throwable::printStackTrace, () -> {
                        Log.d("", "onComplete()");

                        Log.d("", "SHOW POP UP");

                        showView();
                    });

认识的人,

请告诉我,

谢谢,

以下代码可能有效。

 Observable
            .interval(0, 5, TimeUnit.SECONDS)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Observer<Long>() {
                
                Disposable d;
                
                @Override
                public void onSubscribe(@NonNull Disposable d) {
                    this.d = d;
                }

                @Override
                public void onNext(@NonNull Long aLong) {
                    if(!d.isDisposed()) {
                        this.onComplete(); // this will call onComplete()
                        d.dispose();
                    }
                }

                @Override
                public void onError(@NonNull Throwable e) {

                }

                @Override
                public void onComplete() {
                    showView();
                }
            });