【问题标题】:Start RxJava2 Observable.interval() with no initial delay?启动 RxJava2 Observable.interval() 没有初始延迟?
【发布时间】:2018-02-06 02:41:47
【问题描述】:

我使用 RxJava2 Observable 每秒重复一次操作,然后将结果发布到我的 Android 布局中的 TextView。我现在拥有的代码(如下)运行良好,但我宁愿让它在没有初始延迟的情况下执行。

Disposable disposable = Observable.interval(1000, java.util.concurrent.TimeUnit.MILLISECONDS)
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(aLong -> myMethod());

我注意到其他使用 RxJS 的人使用 timer() 而不是 interval() 来实现 0 延迟。有没有办法用 RxJava2 做到这一点?

【问题讨论】:

    标签: java android rx-java rx-java2 reactivex


    【解决方案1】:

    RxJava 2 中有一个Observable.timer(long delay, TimeUnit unit, Scheduler scheduler)。您可以尝试使用它。

    更新 1:
    对于以初始延迟开始然后定期发射的interval,您可以使用Observable.interval(long initialDelay, long period, TimeUnit unit, Scheduler scheduler)

    【讨论】:

    • 我试过这样做,但任务没有重复。如果我错了,请纠正我,但 Observable.timer() 用于一次性延迟,而 Observable.interval() 用于多次重复任务。
    猜你喜欢
    • 2019-06-03
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多