java - 如何让 RxJava 间隔立即执行 Action

标签 java android rx-java

你好,我正在让 observable 每隔 15 秒向我的服务器询问一次它的在线/离线状态:

public Observable<Response> repeatCheckServerStatus(int intervalSec, final String path) {
        return Observable.interval(intervalSec, TimeUnit.SECONDS)
                .flatMap(new Func1<Long, Observable<Response>>() {
                    @Override
                    public Observable<Response> call(Long aLong) {
                        return Observable.create(new Observable.OnSubscribe<Response>() {
                            @Override
                            public void call(Subscriber<? super Response> subscriber) {
                                try {
                                    Response response = client.newCall(new Request.Builder()
                                            .url(path + API_ACTION_CHECK_ONLINE_STATUS)
                                            .header("Content-Type", "application/x-www-form-urlencoded")
                                            .get()
                                            .build()).execute();

                                    subscriber.onNext(response);
                                    subscriber.onCompleted();
                                    if (!response.isSuccessful())
                                        subscriber.onError(new Exception());
                                } catch (Exception e) {
                                    subscriber.onError(e);
                                }
                            }
                        })
                                .subscribeOn(Schedulers.io())
                                .observeOn(AndroidSchedulers.mainThread());
                    }
                });

    }

在我调用这个方法之后,代码的第一次执行将在 intervalSec 时间之后(在我的例子中是 15 秒)。查看间隔方法的 rxJava 文档:

http://reactivex.io/documentation/operators/interval.html

这是应该的。

问题:有什么方法可以立即执行代码,然后间隔重复执行?

最佳答案

你也可以像这样立即执行它:

Observable.interval(0, 1000, TimeUnit.MILLISECONDS).subscribe();

关于java - 如何让 RxJava 间隔立即执行 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34966124/

相关文章:

java - buildscript 中的 gradle.properties 值

java - 对话框未打开

android - Android 上的 JavaRx : Observe if multiple files have downloaded

java - 使用 Jersey RxJava 客户端未找到类 rx.Observable 的序列化器

android - 将 timeout() 与 retryWhen() 结合使用

java - 从 JSP 输入到 JavaFX

java - 如何在 MuPDF 中实现页面 curl

.net - Android 链接错误网页不可用 asp .net

android - Kotlin 1.6.0 打破了proguard?

java - javax validator 和 hibernate validator 如何相关(如果有)?有什么区别?