android面试(RxJava)

RxJava:一个在JVM上使用可观测的序列来组成异步的,基于事件的程序的库。说白了就是异步

优势:

使用:

先明白三个概念:

Observable被观察者,Observer观察者,Subscribe订阅

上游Observable和下游observer通过subscribe建立连接,总共就3步:创建上游,创建下游,建立连接。

可以有个很简便的链式写法:

subscribe()有很多重载的方法,以下为1~6:

 public final Disposable subscribe() {}
    public final Disposable subscribe(Consumer<? super T> onNext) {}
    public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError) {} 
    public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Action onComplete) {}
    public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Action onComplete, Consumer<? super Disposable> onSubscribe) {}
    public final void subscribe(Observer<? super T> observer) {}

1:无参数,下游不关心任何事件

2:只关心next事件

3,只关心next和error,其他同理。

线程调度:

尽可能使用内置schedeler,因为在RxJava内部使用线程池来维护这些线程,效率较高。

Schedulers.io():io操作,用于网络,读写文件等io密集型操作

Schedulers.computation():CPU计算密集型操作,用于需要大量计算的操作

Schedulers.newThread():新开线程

AndroidSchedulers.mainThread():代表Android主线程

网络请求时,如果activity退出了,下游无法更新UI了怎么办?

RxJava中内置了一个容器CompositeDisposable,每次得到一个Disposable就调用add方法添加到容器中,所以当退出时,调用CompositeDisposable.clear()即可切断所有水管。

参考:https://www.jianshu.com/u/c50b715ccaeb

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值