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