美文网首页
Android-分享一个管理Rx的生命周期开源库(RxLifec

Android-分享一个管理Rx的生命周期开源库(RxLifec

作者: 阿博聊编程 | 来源:发表于2022-09-05 23:12 被阅读0次
图片来源网络,入侵必删

在日常的Android开发中,我们部分项目会使用到Rx系列的开源库。如果我们对Rx系列的类使用不恰当,会导致内存泄漏问题。

RxLifecycle

这个库帮我们管理Rx系列开源的订阅,防止出现内存泄漏的问题。

RxLifecycle的引入

基础库:

implementation 'com.trello.rxlifecycle4:rxlifecycle:4.0.2'

可选择库:

// If you want to bind to Android-specific lifecycles
implementation 'com.trello.rxlifecycle4:rxlifecycle-android:4.0.2'

// If you want pre-written Activities and Fragments you can subclass as providers
implementation 'com.trello.rxlifecycle4:rxlifecycle-components:4.0.2'

// If you want pre-written support preference Fragments you can subclass as providers
implementation 'com.trello.rxlifecycle4:rxlifecycle-components-preference:4.0.2'

// If you want to use Android Lifecycle for providers
implementation 'com.trello.rxlifecycle4:rxlifecycle-android-lifecycle:4.0.2'

// If you want to use Kotlin syntax
implementation 'com.trello.rxlifecycle4:rxlifecycle-kotlin:4.0.2'

// If you want to use Kotlin syntax with Android Lifecycle
implementation 'com.trello.rxlifecycle4:rxlifecycle-android-lifecycle-kotlin:4.0.2'

截止我发布博客,开源库目前版本是4.0.2如果想要使用最新的版本,可以看看开源库wiki

RxLifecycle的使用

可以在生命周期发出任何内容时进行绑定:

myObservable
    .compose(RxLifecycle.bind(lifecycle))
    .subscribe();

或者可以绑定到特定生命周期事件发生的时间:

myObservable
    .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
    .subscribe();

或者可以让 RxLifecycle 确定结束序列的适当时间:

myObservable
    .compose(RxLifecycleAndroid.bindActivity(lifecycle))
    .subscribe();

Kotlin调用RxLifecycle

myObservable
    .bindToLifecycle(myView)
    .subscribe { }

myObservable
    .bindUntilEvent(myRxActivity, STOP)
    .subscribe { }

相关文章

网友评论

      本文标题:Android-分享一个管理Rx的生命周期开源库(RxLifec

      本文链接:https://www.haomeiwen.com/subject/hanbnrtx.html