我们可以使用 RxJava 检测类成员值是否发生更改吗?假设一个类中有一个变量 var,现在我们可以使用 RxJava 在 var 的值发生变化时收到通知。
你可以使用这样的东西:
private final BehaviorSubject<Integer> subject = BehaviorSubject.create();
private Integer value=0;
public Observable<Integer> getUiElementAsObservable() {
return subject;
}
public void updateUiElementValue(final Integer valueAdded) {
synchronized (value) {
if (valueAdded == 0)
return;
value += valueAdded;
subject.onNext(value);
}
}
并像这样订阅它:
compositeSubscription.add(yourClass.getUiElementAsObservable()
.subscribe(new Action1<Integer>() {
@Override
public void call(Integer userMessage) {
setViews(userMessage,true);
}
}));
您必须为所有想要订阅其更改的变量创建 setter,并在应用更改时调用 onNext。
UPDATE
当观察者订阅一个行为主体,它首先发出源 Observable 最近发出的项
您可以在这里查看其他类型的主题:http://reactivex.io/documentation/subject.html http://reactivex.io/documentation/subject.html
一些有用的链接:
关于反应式编程:https://gist.github.com/staltz/868e7e9bc2a7b8c1f754 https://gist.github.com/staltz/868e7e9bc2a7b8c1f754关于 rxjava :https://youtu.be/k3D0cWyNno4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)