给 RxJava Observable 一些东西以从另一个方法发出

Giving an RxJava Observable something to emit from another method

我在 Fragment 中有一个变量,它的值在 Fragment 的整个生命周期中会多次更改。它由 UI 交互触发,所以我认为使用 Observable 来保存它可能是个好主意,而不是将所有待更新的视图作为字段并进行我的 UI 更改来自 setter.

必须通过另一种方法更新值(基本上是 setter 应该在订阅者上调用 onNext()),而不是通过 Observable 本身。有没有办法用 RxJava 的设计做到这一点?

换句话说,我希望有一个 Observable 字段,并通过 class 中的另一个方法为其提供新值以发出(对其订阅者调用 onNext())。

RxJavaSubjects 用于此目的。例如:

private final PublishSubject<String> subject = PublishSubject.create();

public Observable<String> getUiElementAsObservable() {
    return subject;
}

public void updateUiElementValue(final String value) {
    subject.onNext(value);
}