Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用改型和rxJava重复api调用_Android_Rx Java2_Rx Android - Fatal编程技术网

Android 使用改型和rxJava重复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 -

我是RxJava新手,我想使用一个改型重复(3秒)API调用。我看到了一些答案,但我不知道如何才能做到这一点

我按此重复通话

这是我的密码

 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));