自定义了一个RxLifecycle类,并实现LifecycleObserver接口与ObservableTransformer接口,因为要在Activity/Fragment 回调onDestroy时取消Rx操作,所以这里只监听了Lifecycle.Event.ON_DESTROY事件,如果需要其他生命周期方法请自己去扩展

public class RxLifecycle implements LifecycleObserver, ObservableTransformer {

CompositeDisposable compositeDisposable = new CompositeDisposable();

@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)

private void onDestroy() {

if (!compositeDisposable.isDisposed()) {

compositeDisposable.dispose();

}

}

@Override

public @NonNull ObservableSource apply(@NonNull Observable upstream) {

return upstream.doOnSubscribe(disposable -> compositeDisposable.add(disposable));

}

public static RxLifecycle bindLifecycle(LifecycleOwner lifecycleOwner) {

RxLifecycle lifecycle = new RxLifecycle<>();

lifecycleOwner.getLifecycle().addObserver(lifecy

参考链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: