Android 使用改型和rxJava重复api调用
我是RxJava新手,我想使用一个改型重复(3秒)API调用。我看到了一些答案,但我不知道如何才能做到这一点 我按此重复通话 这是我的密码Android 使用改型和rxJava重复api调用,android,rx-java2,rx-android,Android,Rx Java2,Rx Android,我是RxJava新手,我想使用一个改型重复(3秒)API调用。我看到了一些答案,但我不知道如何才能做到这一点 我按此重复通话 这是我的密码 apiInterface = ApiClient.getClient().create(ApiInterface.class); apiInterface.getTopRatedMovie(API_KEY) .interval(3, TimeUnit.SECONDS) .flatMap(n -
apiInterface = ApiClient.getClient().create(ApiInterface.class);
apiInterface.getTopRatedMovie(API_KEY)
.interval(3, TimeUnit.SECONDS)
.flatMap(n -> apiInterface.getTopRatedMovie(API_KEY))
.repeat()
.subscribe(new Observer<MovieResopnse>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
compositeDisposable.add(d);
}
@Override
public void onNext(@NonNull MovieResopnse movieResopnse) {
movies = movieResopnse.getResults();
Log.d(TAG, "onResponse: Number of movies received: " + movies.size());
tv_count.setText("Movie: " + count);
count++;
Picasso.get()
.load(IMAGE_URL + movies.get(item).getPosterPath())
.into(image);
title.setText(movies.get(item).getOriginalTitle());
subtitle.setText(movies.get(item).getTitle());
description.setText(movies.get(item).getOverview());
rating.setText("" + movies.get(item).getVoteAverage());
release_date.setText("Release: " + movies.get(item).getReleaseDate());
}
@Override
public void onError(@NonNull Throwable e) {
Log.d(TAG, "onError: " + e.getMessage());
Toast.makeText(MainActivity.this, "Error: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
@Override
public void onComplete() {
}
});
apinterface=ApiClient.getClient().create(apinterface.class);
apiInterface.getTopRatedMovie(API_键)
.间隔(3,时间单位秒)
.flatMap(n->apinterface.getTopRatedMovie(API_键))
.重复
.订阅(新观察员){
@凌驾
订阅时的公共无效(@NonNull-d){
可合成。添加(d);
}
@凌驾
public void onNext(@NonNull MovieResopnse MovieResopnse){
movies=movieResopnse.getResults();
Log.d(标记“onResponse:Number of movies received:”+movies.size());
tv_count.setText(“电影:+count”);
计数++;
毕加索
.load(IMAGE\u URL+movies.get(item).getPosterPath())
.进入(图像);
title.setText(movies.get(item.getoriginaltile());
subtitle.setText(movies.get(item.getTitle());
description.setText(movies.get(item.getOverview());
rating.setText(“+movies.get(item.getVoteAverage());
release_date.setText(“release:+movies.get(item).getReleaseDate());
}
@凌驾
公共无效onError(@NonNull可丢弃e){
Log.d(标记“onError:+e.getMessage());
Toast.makeText(MainActivity.this,“错误:+e.getMessage(),Toast.LENGTH_SHORT).show();
}
@凌驾
未完成的公共空间(){
}
});
以下是我如何使用改装进行重复呼叫的
compositeDisposable.add(Observable.interval(6, TimeUnit.SECONDS)
.flatMap(n -> apiInterface.getTopRatedMovie(API_KEY))
.repeat()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<MovieResopnse>() {
@Override
public void accept(MovieResopnse movieResopnse) throws Exception {
movies = movieResopnse.getResults();
Log.d(TAG, "onResponse: Number of movies received: " + movies.size());
doUIoperation();
}
}, this::onError));
compositeDisposable.add(可观察的时间间隔(6,时间单位。秒)
.flatMap(n->apinterface.getTopRatedMovie(API_键))
.重复
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.订阅(新消费者){
@凌驾
public void accept(MovieResopnse MovieResopnse)引发异常{
movies=movieResopnse.getResults();
Log.d(标记“onResponse:Number of movies received:”+movies.size());
双重操作();
}
},这个::onError));