美文网首页
RXJAVA2踩坑记录

RXJAVA2踩坑记录

作者: linshi2013 | 来源:发表于2017-11-24 17:27 被阅读817次

降低方法数的时候发现RXJAVA升到2了,之前公司封的框架太烂了,趁此机会弄一个新的,以下是踩坑:

rxjava三部曲:

1.新建observable


Observable.create(newObservableOnSubscribe() {

@Override

public voidsubscribe(@NonNull ObservableEmitter e)throwsException{

e.onNext();

e.onError(exception);

}

})


rxjava2通过ObservableEmitter发射事件,各类操作符与rxjava1的区别不大,

使用retrofit2的话就不用关心新建observable了,因为它返回的就是一个observable,

注意导入:compile'com.squareup.retrofit2:adapter-rxjava2:2.2.0'

2.新建observer

rxjava2新增了一些Disposable的类,observer推荐使用DisposableObserver

3.建立订阅关系subscribe

还是subscribe,区别是subscribe返回值变为void,如果要返回observer,可以用subscribeWith

订阅之后要取消订阅来释放资源,这里就要讲一下重点的CompositeDisposable,

rxjava1中用的是CompositeSubscription的add和clear方法,

rxjava2中CompositeDisposable的add参数是Disposable,这就是我推荐使用DisposableObserver的原因


compositeDisposable.add(disposableObserver);

observable.subscribeOn(Schedulers.io()).

observeOn(AndroidSchedulers.mainThread()).subscribe(disposableObserver);


disposableObserver直接new出来然后实现几个方法即可,就不贴大段的代码了;

取消订阅:compositeDisposable.clear

本来我想设置一个final的observer,然后让多个observable订阅到它,出现个异常

io.reactivex.exceptions.ProtocolViolationException:

查了一下说是一个observer只能subscribe订阅一次,必须每次都要new个新的。

Action在rxjava中用Consumer替代

关于back pressure,主要应用场景是observer发送和observable处理速度不一致,目前没有实际场景用到,就不讨论了。

相关文章

  • RXJAVA2踩坑记录

    降低方法数的时候发现RXJAVA升到2了,之前公司封的框架太烂了,趁此机会弄一个新的,以下是踩坑: rxjava三...

  • 2020-10-19随笔 踩坑0传值

    踩坑:当值传入0时,if条件判断时候会自己转换,记录踩坑。

  • Weex入门踩坑记录

    Weex入门踩坑记录

  • Flutter 开发记录

    Flutter 开发踩坑记录(干货总结)

  • 日常bug记录

    想记录日常碰到的bug,坑踩多了,以后应该碰到坑就比较容易处理或者会少踩坑,后面会慢慢记录bug,截图bug以及最...

  • 没事请多踩踩坑!

    人生事不尽意,别人挖坑我踩坑。 请在这里留下你的踩坑记录,让别人少入坑。

  • Windows下GithubPages博客快速搭建

    Windows下开发坑总是比较多的,但是本人没Mac,只好踩一遍坑记录下。本文主要是安装过程&踩坑记录,故不对细节...

  • Retrofit Https踩坑记录

    Retrofit Https踩坑记录 前言 新司机上路,坑多,本文重点是踩坑,不详细讲retrofit用法,本文不...

  • 个人博客标签分类

    【小结】零碎的小结 【踩坑记录】报错等记录,防止再度踩坑 【总结】比较完整的总结 【想法】自己的一些想法和推论 【...

  • 踩坑记录

    如果当前页面是push出的页面,切换根视图控制器没问题;如果当前页面是present出的页面,切换跟视图控制器之前...

网友评论

      本文标题:RXJAVA2踩坑记录

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