Rx java 如何使用PublishSubject在Next()之前更新UI;

Rx java 如何使用PublishSubject在Next()之前更新UI;,rx-java,Rx Java,起初。我使用这种方式来更新UI RetrofitHelper.getInstance().getGankDaily() .getInfo(page) .subscribeOn(Schedulers.io()) .doOnSubscribe(new Action0() { @Override public void call() {

起初。我使用这种方式来更新UI

RetrofitHelper.getInstance().getGankDaily()
               .getInfo(page)
               .subscribeOn(Schedulers.io())
               .doOnSubscribe(new Action0() {
                @Override
                public void call() {
                    //shwo Progressbar
                }
            }).subscribeOn(AndroidSchedulers.mainThread())
              .observeOn(AndroidSchedulers.mainThread())
              .subscribe(new Action1<Integer>() {
                        @Override
                        public void call(Integer integer) {
                        //hide progressbar
                        })
doOnSubscribe
只在第一次调用,而
donext
需要
newaction1()
。 所以I找不到解决这个问题的好办法
我是rxjava的初学者。

如果您需要使progressBar在某些事件(单击或其他)上可见,然后在收到响应时消失:

您可以创建单独的
PublishSubject
,仅用于progressBar可见性
final PublishSubject progressSubject=PublishSubject.create()
在某处订阅:

 progressSubject.subscribe(new Action1<Boolean>() {
      @Override
      public void call(Boolean isVisible) {
             // make progressBar VISIBLE or GONE according to isVisible
      }
 });
progressSubject.subscribe(新操作1(){
@凌驾
公共无效调用(布尔值可见){
//根据isVisible使progressBar可见或消失
}
});
比,在这个“事件”中只是做

 clickObservable
      .doOnNext(new Action1<Boolean>() {
           @Override
           public void call(Boolean isVisible) {
                  progressSubject.onNext(true);
           }
        })
      .//someSubscription...
单击可观察
.doOnNext(新行动1){
@凌驾
公共无效调用(布尔值可见){
progressSubject.onNext(true);
}
})
.//someSubscription。。。
在接收响应的地方执行相同的操作
progressSubject.onNext(false)

 clickObservable
      .doOnNext(new Action1<Boolean>() {
           @Override
           public void call(Boolean isVisible) {
                  progressSubject.onNext(true);
           }
        })
      .//someSubscription...