如何在 x 秒后开始观察

how to start observable after x sec

让我们说 10 秒后开始观察的最佳方式是什么?

Single<Boolean> init();

public void onStart() {
    init().subscribe(getMySubscriber())
}

我想在订阅 10 秒后启动 `init 中的实际工作。

Observable.timer() 就是您要找的

Observable
            .timer(10L, TimeUnit.SECONDS)
            .subscribe(aLong -> init());

使用delaySubscription延迟对现有来源的订阅:

Single.just(1)
   .delaySubscription(10, TimeUnit.SECONDS)
   .subscribe(System.out::println);

如果您的 init() 方法本身在返回 Single 之前有副作用,您可以用 Single.defer 包装它并且上面的结构应该仍然有效:

Single.defer(() -> init())
    .delaySubscription(10, TimeUnit.SECONDS)
    .subscribe(System.out::println);