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

图片来源网络,入侵必删

在日常的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 { }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容