ge-6ren">
gpt4 book ai didi

android - Rxjava2 如果时间没有出来,如何返回缓存值

转载 作者:行者123 更新时间:2023-11-29 01:05:20 25 4
gpt4 key购买 nike

我有一个问题。我有简单的 Observable。

public interface CitiesApi {
@GET("location/cities")
Observable<List<City>> getCities(@Query("country") String countryId);
}

我还有类(经理),它保存来自这个可观察对象的数据并将其交给 Activity 或演示者。

public class Manager {

@Inject
CitiesApi mCitiesApi;

private Date mDate;
private List<City> mCities;

public Observable<List<City>> getObservable() {
return mCitiesApi.getCities("123");
}
}

问题:当我订阅这个 observable 时,

current time - last subscribe time < 10 min(or other range, it doesn't matter...)

我想用旧数据调用 onNext。但如果时差 > 10,我想从网上下载数据(返回原始可观察值)。我不想使用 retrofit 缓存,因为我可以手动更改此列表。

最佳答案

你的 Observable 必须像那样:

public Observable<List<City>> getObservable() {

if (cacheTime > 10){ //If cached data time is greater than 10min, you make your network call.
return mCitiesApi.getCities("123");
} else{
return Observable.just(getChachedData("123")) //Where getChachedData is a method that return a list of your cached data.
}
}

关于android - Rxjava2 如果时间没有出来,如何返回缓存值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47715105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com