RXJava如何在x时间之后尝试获得下一个

Dan*_*ico 5 android rx-java retrofit

我想每隔x秒使用一次改造来调用Web服务,直到y条件被提升.

我希望OrderApi.get在x秒后运行,直到响应为空.

public class OrderApi {}
    public static Observable<Order> get() { 
        //...
    }
}


OrderApi.get(order.getId()))
        .subscribe(updatedOrder -> {
          mShouldRun = updatedOrder != null;
        });
Run Code Online (Sandbox Code Playgroud)

已经看过运营商,Observable.delay Observable.timber但我找不到正确使用它们的方法.

Fri*_*ail 4

这应该有效

 Observable.interval(1, TimeUnit.SECONDS)
                .flatMap(new Func1<Long, Observable<?>>() {
                    @Override
                    public Observable<?> call(Long aLong) {
                        return OrderApi.get();
                    }
                }).takeUntil(new Func1<Object, Boolean>() {
            @Override
            public Boolean call(Object o) {
                return o==null;
            }
        }).subscribe(observer);
Run Code Online (Sandbox Code Playgroud)