RxJava生命周期管理

当Activity或者fragment销毁的时候需要取消订阅,否则会消耗内存,导致OOM。这里推荐两种办法:
第一种:

 
CompositeDisposable mDisposables = new CompositeDisposable();
DisposableObserver mObserver = getObservable()//被观察者
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(mObserver);
mDisposables.add(mObserver);
当fragment或者activity销毁的时候,清空mDisposables.clear();

第二种使用rxlifecycle-components第三方框架

Activity需要继承RxAppcompatActivity,新建的Fragment则继承RxFragment。
myObservable
    .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
    .subscribe();
具体可以查看官方GitHub