rxjava2/rxjava3+AutoDispose的使用优雅解决RxJava内存泄漏

rxjava2/rxjava3+AutoDispose的使用优雅解决RxJava内存泄漏

github 地址: 添加 依赖 目前新版本

//    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中 研究

经验分享 程序员 微信小程序 职场和发展