我可以延迟 RxJava 中的 onSuccess 方法吗?

Can I delay the onSuccess method in RxJava?

我有 SplashScreenFragment 并且在这个片段中,我将使用 RetrofitRxJava 从服务器加载数据,从服务器获取数据需要 1 秒到25秒。

SplashScreenFragment 必须向用户显示至少 8 秒。

当我从服务器获取数据时,将调用 onSuccess 方法,在此 onSuccess 方法中,我会将用户导航到 HomeFragment

让我们举个例子来理解我到底想要什么:

第一个场景: 当我打开应用程序时,SplashScreenFragment 将启动并从服务器获取数据,假设需要 1 秒从服务器获取数据,在这种情况下,一定不能调用onSuccess方法,应该等待7秒后,必须调用onSuccess方法

第二种情况: 当我打开应用程序时,SplashScreenFragment 将启动并从服务器获取数据,假设需要 3 秒从服务器获取数据,在这种情况下,它不能调用onSuccess方法,应该等待5秒,然后,它必须调用onSuccess方法

第三种情况: 当我打开应用程序时,SplashScreenFragment 将启动并从服务器获取数据,假设需要 12 秒从服务器获取数据,这种情况下,必须直接调用onSuccess方法,无需等待。

我可以,但是没有RxJava,我想知道RxJava中有没有什么方法可以根据上述条件延迟onSuccess方法?

用 8 秒计时器压缩它:

Single<Data> datasource = ...

datasource.zipWith(Single.timer(8, TimeUnit.SECONDS), (a, b) -> a)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(data -> { }, error -> { });