美文网首页
RxLifecycle 笔

RxLifecycle 笔

作者: Demon鑫 | 来源:发表于2017-01-05 15:39 被阅读0次

管理RxJava订阅后内存泄漏(内存管理)

0.添加依赖
compile 'com.trello:rxlifecycle:1.0'
compile 'com.trello:rxlifecycle-components:1.0'
1.使用
  • Activity 继承 RxActivity、RxAppCompatActivity、RxFragmentActivity。
  • Fragment 继承 RxFragment、RxDialogFragment。
2.bindToLifecycle():[Activity/Fragment 使用方法相同]

使用compose() 完成Observable发布的事件和当前的组件绑定,实现生命周期同步。
从而实现当前组件生命周期结束时,自动取消对Observable订阅。

// 循环发送数字
Observable.interval(1, TimeUnit.SECONDS)
        .observeOn(AndroidSchedulers.mainThread())
        // 当Activity结束掉以后,Observable停止发送数据,订阅关系解除。
        .compose(this.<Long>bindToLifecycle())
        .subscribe(new Action1<Long>() {
            @Override
            public void call(Long aLong) {
                tvResult.setText("时间计数: " + aLong);
                Log.d(TAG, "时间计数器: " + aLong);
            }
        });
3.bindUntilEvent():[Activity/Fragment 使用方法相同]

指定在Activity其他的生命状态和订阅关系保持同步。

// 循环发送数字
Observable.interval(1, TimeUnit.SECONDS)
        .observeOn(AndroidSchedulers.mainThread())
        // 当Activity 执行 onDestroy() 方法时解除订阅关系
        .compose(this.<Long>bindUntilEvent(ActivityEvent.DESTROY))
        .subscribe(new Action1<Long>() {
            @Override
            public void call(Long aLong) {
                tvResult.setText("时间计数: " + aLong);
                Log.d(TAG, "时间计数器: " + aLong);
            }
        });
  • ActivityEvent 中枚举参数:
    CREATESTARTRESUMEPAUSESTOPDESTROY
  • Fragment 中枚举参数:
    ATTACHCREATECREATE_VIEWSTARTRESUMEPAUSESTOPDESTROY_VIEWDESTROYDETACH

2017-1-5 15:39:00

相关文章

  • RxLifecycle 笔

    管理RxJava订阅后内存泄漏(内存管理) 0.添加依赖 1.使用 Activity 继承 RxActivity、...

  • Rxlifecycle 源码解析

    Rxlifecycle (https://github.com/trello/RxLifecycle)是基于RxJ...

  • rxLifecycle 处理rxjava生命周期

    1.首先,导入相关包compile 'com.trello.rxlifecycle2:rxlifecycle:2....

  • 为什么不使用 RxLifecycle?

    本文为翻译文章,原文连接:为什么不使用RxLifecycle Why Not RxLifecycle? Hello...

  • RxLifecycle原理分析

    RxLifecycle源码地址 RxLifecycle有两种使用方法:1、bindToLifecycle直接绑定生...

  • RxLifecycle

    RxLifecycle用来解决由于rxjava可能造成的内存泄露,未使用RxLifecycle时:使用rxjava...

  • RxLifecycle

    为什么要用Rxlifecycle 。使用Rxlifecycle的原因? 解决RxJava使用中的内存泄漏问题。例如...

  • RxLifeCycle

    介绍 在 内存泄漏 中介绍了使用 Disposable 来避免内存泄漏。但这个简单的方法需要重载 onDestor...

  • Android开发常用依赖

    ButterKnife OkHttp Retrofit RxJava RxLifecycle Glide Even...

  • RxLifecycle介绍与应用

    Github地址:https://github.com/trello/RxLifecycle待续

网友评论

      本文标题:RxLifecycle 笔

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