上传进度与RxJava, Retrofit



在我的项目中,我使用MVP设计模式,RxJava,RxAndroid和Retrofit来消费API调用。目前,我正在寻找解决方案,试图显示上传进度,而我正在发送图片。我已经看到了几个可能的实现,但我担心它们不适合我的实现。下面是我如何使用我提到的库的API调用:

Subscription subscription = mApiService.modVideoFromVideoController(userHash, videoId, publicVideo, rate)
                .subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<ModifyVideoResponse>() {
                    @Override
                    public void onCompleted() {
                        Log.d(TAG, "modVideo onCompleted");
                    }
                    @Override
                    public void onError(Throwable e) {
                        Log.d(TAG, e.getMessage());
                        Crashlytics.logException(e);
                    }
                    @Override
                    public void onNext(ModifyVideoResponse modifyVideoResponse) {
                        mVideosPresenter.onVideoEdited(position, publicVideo);
                    }
                });
        mCompositeSubscription.add(subscription);

有办法做到这一点吗?

实现这一点的最好方法是使用Side Effects方法。

进度视图隐藏/显示:

用doOnSubscribe()和doFinally()绑定这两个事件。这是两个操作符,因此我们可以在逻辑上将它们与RxCall绑定。

doOnSubscribe()将在您连接到订阅服务器时被调用。

dofinally ()将在最后被调用。

相关内容

  • 没有找到相关文章

最新更新