且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

RxJava 中的 MutableLiveData 等价物是什么?

更新时间:2022-01-25 03:59:00

您可以使用 BehaviorSubject 在某些级别上复制效果.

You could replicate the effects with BehaviorSubject on certain levels.

如果你只是想通知观察者:

If you just want to notify observers:

BehaviorSubject<Integer> subject = BehaviorSubject.create();

subject.subscribe(System.out::println);

subject.onNext(1);

如果你想通知观察者总是在主线程上:

If you want to notify observers always on the main thread:

BehaviorSubject<Integer> subject = BehaviorSubject.create();

Observable<Integer> observable = subject.observeOn(AndroidSchedulers.mainThread());

observable.subscribe(System.out::println);

subject.onNext(1);

如果您希望能够从任何线程发出信号:

If you want to be able to signal from any thread:

Subject<Integer> subject = BehaviorSubject.<Integer>create().toSerialized();

Observable<Integer> observable = subject.observeOn(AndroidSchedulers.mainThread());

observable.subscribe(System.out::println);

subject.onNext(1);

使用 createDefault 给它一个初始值.

Use createDefault to have it with an initial value.