如何使用RxJava 2使用onResume()和onPause()方法来订阅和取消订阅?

问题描述:

那么,我需要绑定发射到我的活动的生命周期。我怎样才能做到这一点?何时应创建观察者和可观察的实例?如何使用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()运营商需要注册和取消对你的照顾。