如何使用RxJava 2使用onResume()和onPause()方法来订阅和取消订阅?
答
如果您有一种可观察的情况,即您有时需要数据而不是其他时间,则有一种使用switchMap()
运算符进行订阅和取消订阅的简单方法。
假设你有一个观察的是要从数据:
Observable<LocationData> locationDataObservable;
然后,如果你介绍一个开关观察到:
PublishSubject<Boolean> switchObservable = PublishSubject.create();
可以控制订阅第一观察到:
Observable<LocationData> switchedLocationDataObservable =
switchObservable
.switchMap(abled -> abled ? locationDataObservable : Observable.never())
.subscribe();
要启用接收数据,请执行
switchObservable.onNext(Boolean.TRUE);
和禁用,
switchObservable.onNext(Boolean.FALSE);
的switchMap()
运营商需要注册和取消对你的照顾。