RxAndroid+Retrofit示例代码
定义对象间的一(被观察者)种一对多(观察者)的依赖关系,当一个对象发生改变时,所有依赖于他的对象都能得到通知并被自动更新。
Rxandroid的观察者模式有三个回调方法(如果结合retrofit的话里面的参数是可选的,但是nonext是必选的,举个例子,如果用户不关心结果, 不关心事情是否做完,只要有个onnext通知就可以,但是一般涉及到网络的话还需要关心onerror结果,做事情么,要的就是结果, 但是oncompleted如果在批处理我感觉没啥卵用,后文会有代码说明),这三个onnext是一定触发的,剩下的两个有其中一个也是会一定触发的。
- 这个empty很有意思,来看下源码,这里采取的是单例的设模式
- 再看一下onxxx里面的核心代码,你就知道为啥可以遍历了
看了下稍微有点失望,其实也是用的for,但是再去具体看的话里面又结合了观察者模式还有三个回调方法,这里建议大家自己看一下源代码。
- 看一下实例
- 其实这时候大家所想估计和我当时一样,心头一万头草泥马路过,一行代码的问题这么多代码才搞定,一点都不简洁,ok,来看点简洁的
- 这里又有问题了,你肯定会问hello哪去了,到了这里是不是有那么一点感到还行哈,变简单了,这里看一下just的源码,其实到了from那里,这里好多用的都是泛型,
而且也必须用泛型,这样使用者考虑的就不必那么多,不必拘谨了,ok,连贯的打印所需要的东西
- 关于县城切换的都有注释,下面再举两个例子,看一下io,newthread的区别,因为网络请求这两个都可以,然后就有点好奇了,结果其实我感觉差别不大,至少在创建的时候
这个包是rxjava里面的,其实io和newthread创建过程是一样的,但是prefix不一样,还有incrementandget也不一样,然后去里面翻了翻,结果是这样,也是意料之中吧, 但是感觉写这个代码的人对性能要求挺高的,注意标红箭头的
线程切换是不是很方便,还有就是感觉rxandroid在批处理方便很方便,最大的方便就是不用自己去写一堆循环了。
从项目的应用角度说一下retrofit,其实就是okhttp的一个包装。 retrofit有好多大神讲的很好了