rxjava2/rxjava3+AutoDispose的使用优雅解决RxJava内存泄漏
github 地址:
github 地址:https://github.com/uber/AutoDispose
添加 依赖 目前新版本
// AutoDispose
api 'com.uber.autodispose2:autodispose:2.1.1'
api 'com.uber.autodispose2:autodispose-androidx-lifecycle:2.1.1'
//api 'com.uber.autodispose:autodispose-android-archcomponents:2.1.0'
rxjava2 版本中如下使用:
// 在Activity/fragment中使用
Observable
.as(AutoDispose.autoDisposable(AndroidLifecycleScopeProvider.from(this))
.subscribe(s -> ...);
//主要添加如下代码:
as(AutoDispose.autoDisposable(AndroidLifecycleScopeProvider.from(lifecycleOwner))
rxjava3 版本中如下使用:
RxJava3 里面已经删除 as 方法,是 to 方法代替
Observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.to(AutoDispose.autoDisposable(AndroidLifecycleScopeProvider.from(activity)))
以上是具体使用方法,关于AutoDispose的原理等可在github中 研究