参考AndroidX-KTX
中的lifecycleScope
,将RxJava绑定Android周期,减少/防止内存泄漏。
- 添加
jitpack
仓库
allprojects {
repositories {
maven { url "https://jitpack.io" }
}
}
dependencies {
implementation "com.github.liu-wanshun:rxandroid-disposables:Tag"
// 您应该使用Rxjava3.1.0或以后的版本 和 RxAndroid
// 如果您的项目中使用Kotlin,建议您使用Kotlin协程而不是Rxjava
}
获取CompositeDisposable
// 对于 LifecycleOwner
CompositeDisposable composite = LifecycleDisposable.from(lifecycleOwner);
// 在Fragment中应尽可能使用ViewLifecycleOwner,例如:
CompositeDisposable composite = LifecycleDisposable.from(getViewLifecycleOwner());
// 对于 Lifecycle
CompositeDisposable composite = LifecycleDisposable.from(lifecycle);
// 对于 ViewModel
CompositeDisposable composite = ViewModelDisposable.from(viewModel);
// 对于 View
CompositeDisposable composite = ViewAttachDisposable.from(view);
你可以像这样使用:
Single.just(1)
.subscribe(s->{
Log.e("sss","成功结果: "+s);
},throwable->{
Log.e("sss","失败: ",throwable);
},LifecycleDisposable.from(lifecycleOwner) /*CompositeDisposable*/);