美文网首页
RxJava2小记

RxJava2小记

作者: kaxi4it | 来源:发表于2018-07-27 18:15 被阅读0次

    目前使用如下版本
    'io.reactivex.rxjava2:rxjava:2.1.17'
    'io.reactivex.rxjava2:rxandroid:2.0.2'

    引入了 Flowable 支持背压
    Observable 不再支持背压
    Function 代替 Func1
    BiFunction 代替Func2
    Function3,4,5,6,7,8,9 代替Func3,4,5,6,7,8,9
    Function 默认throws Exception
    Consumer 代替 Action1
    BiConsumer 代替 Action2 ... ActionN-1 保留了ActionN

    Obserable 被观察者
    Observer 观察者

    Obserable.create(ObservableOnSubscribe)
    ...
    .subscribe(Observer)
    

    操作符
    create 创建被观察者
    map 把Observable转换成另一Observable 如integer转string
    zip 打包配对事件 打包次数以某个Observable最小事件数为准 如A有3次事件 B有5次 则zip打包3次
    concat 有序链接事件 如concat(a,b) 则有序依次发布a b事件
    flatMap 无序的把Observable转换成另一Observable 如integer转string
    concatMap 有序的把Observable转换成另一Observable 如integer转string
    distinct 事件去重功能
    filter 过滤器 retrun true则返回 false则过滤
    buffer 把单个事件压进集合,类似缓冲寄存器概念,传入count和skip变量,count为每个集合的max size,skip为取事件的位移步长,如事件123456 butter(count:3,skip:2) 可以得到123,345,56
    timer 延迟发送事件 默认新线程里计时,接受事件时需切换回主线程操作 timer(1,SECONDS) 延迟1秒发送
    interval 间隔事件发送事件 默认新线程里计时,接受事件时需切换回主线程操作 interval(1,2,SECONDS) 延迟1秒开始发送并每间隔2秒重复发送,由于计时器线程与页面销毁与否无关,所以通过创建interval时保存在Disposable变量中,在页面销毁时dispose即可
    doOnNext 观察者接收到数据之前可以适当做些操作
    skip 跳过N个事件开始接收
    take 接收N个事件后 不再接收
    just 简单快速的创建被观察者事件
    single 只接收一个参数
    debounce 去除频率过快的,N次事件间隔过小时,取最后一个事件
    defer 延后执行 事件先不生成,在观察者订阅时再生成被观察者的事件
    last 取最后一个事件,last的参数为无事件时,则发送一个默认的事件
    merge 无序合并多个被观察者,与concat有区别,concat为顺序合并多个被观察者

    相关文章

      网友评论

          本文标题:RxJava2小记

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