Android 如何使用改型和RXJava多次调用相同的API
嗯。因此,API文档说明: 通过更改“开始”和“计数”参数,最多可获得100家餐厅,计数的最大值为 20. API链接: 这是示例代码:Android 如何使用改型和RXJava多次调用相同的API,android,api,retrofit2,rx-android,rx-java2,Android,Api,Retrofit2,Rx Android,Rx Java2,嗯。因此,API文档说明: 通过更改“开始”和“计数”参数,最多可获得100家餐厅,计数的最大值为 20. API链接: 这是示例代码: restaurantList = new ArrayList<>(); restaurantFinderAPI = RetrofitClient.getRetrofitClientAPI(); restaurantScheduler = Schedulers.newThread(); for (int i = 0; i &
restaurantList = new ArrayList<>();
restaurantFinderAPI = RetrofitClient.getRetrofitClientAPI();
restaurantScheduler = Schedulers.newThread();
for (int i = 0; i <= 80; i += 20) {
restaurantModelObservable = restaurantFinderAPI.getRestaraunts(city, entitytype, searchString, i, 20);
restaurantModelObservable.subscribeOn(restaurantScheduler);
restaurantModelObservable.observeOn(AndroidSchedulers.mainThread());
restaurantModelObservable.subscribe(new Observer<RestaurantModel>() {
@Override
public void onSubscribe(Disposable d) {
COUNT++;
restaurantDisposable = d;
}
@Override
public void onNext(RestaurantModel value) {
restaurantList.addAll(value.getRestaurants());
}
@Override
public void onError(Throwable e) {
restaurantDisposable.dispose();
onRestaurantSync.onRestaurantSyncFail();
}
@Override
public void onComplete() {
if (COUNT == 5) {
new ModifyTask().execute(restaurantList);
COUNT = 0;
}
}
});
restaurantList=newarraylist();
restaurantFinderAPI=RefughtClient.getRefughtClientAPI();
restaurantScheduler=Schedulers.newThread();
for(int i=0;i)是一种用于线程调度任务以供将来在后台线程中执行的工具。任务可以调度为一次性执行,也可以调度为定期重复执行。
预定固定日期
将指定的任务安排为重复的固定速率执行,从指定的延迟后开始。后续执行以大约固定的间隔进行,间隔为指定的时间段。
线程为将来在后台线程中执行而安排任务的一种工具。任务可以安排为一次性执行,也可以安排为定期重复执行。
预定固定日期
将指定的任务安排为重复的固定速率执行,从指定的延迟后开始。后续执行以大约固定的间隔进行,间隔为指定的时间段。
我是在RX的concat操作符的帮助下完成这项工作的。我只是从{20,40,60,80}这样的偏移量数组中创建了一个可观测值,并对rest Api进行了每次发射调用,对于每个结果,我都将其添加到一个arraylist中。我是在RX的concat操作符的帮助下完成这项工作的。我只是从类似的偏移量数组中创建了一个可观测值{20,40,60,80}并对rest Api的每个发射进行调用,对于每个结果,我将其添加到arraylist中。可能是这样的:
Disposable disposable = Observable.range(0, 5)
.subscribeOn(Schedulers.io())
.flatMap(i -> getRestaraunts(city, entitytype, searchString, i * 20, 20))
.observeOn(AndroidSchedulers.mainThread())
.subscribe();
也许是这样的:
Disposable disposable = Observable.range(0, 5)
.subscribeOn(Schedulers.io())
.flatMap(i -> getRestaraunts(city, entitytype, searchString, i * 20, 20))
.observeOn(AndroidSchedulers.mainThread())
.subscribe();
我想你把我的问题搞错了。我想一个接一个地调用这个api 5次。每次调用给我20个结果,我想累积100个结果。你的建议是在特定的时间间隔调用api,我不知道每个api返回一个调用需要多少时间。我想你把我的问题搞错了。我想把这个称为pi 5次,一个接一个。每次调用给我20个结果,我想累积100个结果。你建议的是在特定的时间间隔调用api,我不知道每个api返回一个调用需要多少时间。是的,非常类似于我所做的。是的,非常类似于我所做的。
Timer timer= new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
//Call Service Multiple times
//At EVery 6 seconds
}
},0,6000);
Disposable disposable = Observable.range(0, 5)
.subscribeOn(Schedulers.io())
.flatMap(i -> getRestaraunts(city, entitytype, searchString, i * 20, 20))
.observeOn(AndroidSchedulers.mainThread())
.subscribe();