Android开发经验谈程序员Android知识

Android帝国—四大天王(RxAndroid) 2

2018-11-18  本文已影响13人  zidea

写文章是一件比较麻烦的事。好处就是让你不仅巩固所学。还能够更深刻地理解所学的,如果理解不好,在写的过程中就暴露出来了。这和代码差不多。

    线程理解起来(在这里,其实很难的)也不是那么难,这里我们完全可以将线程想象交通道路。每逢周末下班,或小长假时,回家路或高速上一定会堵车,想早点回家的心情都是可以理解,程序也是跑在线程上的车,如果所有的操作都跑在一个线程会是什么样,尤其在这个缺乏耐心的年头。(图)这个是否为了缓解交通拥堵,我们需要采取一些措施。我们需要通过调配方式或者。

由于 Android 对主线程看的很紧,小窄路,稍不留神,就ANR了。我们应用需要频繁访问访问获取数据,也可以进行操作 IO,然后将数据呈现到界面上。

RxAndroid 的确有些难于理解概念,他并不是简单异步回调,如果用好了他的确是得心应手的利器

很常见就是我们在一个线程处理网络请求和 IO 操作。然后返回到主线程绘制视图。有点像并道吧。并道比较麻烦得左右前后注意。这样复杂的事rxandroid帮我们做了,有了他我们可以利用他提供的选择在线程间任意穿梭。有了交警害怕堵车

背压问题,通过一个实例给大家解释一下。什么是背压。我们在屏幕上移动手指。那么就会产生连续的触摸事件。我们获取事件的坐标信息,来进行绘制一个点。好。问题来了,还没有绘制完当前的点,下一个事件就来了。我们怎么办。这个火爆的自助餐门前一样。这就是背压。我们无法及时消费掉这些事件。那么是等待还是离开就是我们对应的策略。在 rxandroid 1 的时代我们observable 在后期小版本提供对应处理。但是有些不需要处理背压。所以在 rxandroid2有了flowable 他不是什么新东西。就是将 observable 分离出一份专门对应背压的。但是 flowableprocessor 这个处理器可是一个新东西。

我们先总体,看一看大致流程吧,先发送事件(1),然后就可以订阅事件(2),可以先于发送前后进行订阅事件,获得(捕获)订阅的事件,处理事件(3),虽然不感兴趣就取消订阅事件(4),这就是整个流程了。

Observable 实现了 publiser 接口来发布事件,Observer 订阅(subscribe) Obsrvable 发布的事件。然后在 onNext 处理发送过来的事件。然后在 onSubscribe 处理是否取消订阅。这就是整个Rx的流程,

我们如何创建事件源头。 多数情况我们会用到 just 和 create 来创建事件源,使用 Observable.just 方法可以创建一个事件源,这里我们可以传入一个字符串,集合或对象。

range 可以创建一些列的整数。

我们最常用还是 create 来创建一个事件源。Observable 表示可以观察的对象,看看语法 able(能够被)。

这里调用 create 方法发布一定可观察到事件源,这方法接受一个 ObservableOnSubscribe 对象作为参数。在java 中通常都用匿名类来实现函数式编程。这里我们分析一下语法吧,使用英文的语法,而非 code 。在这里 subscribe 是订阅意思,大家都清楚吧,OnSubscribe 表示订阅的可观察对象。我们需要来实现他的订阅方法,方法提供以参数供我们使用,就是可以发射发射器的对象,

用于发布数据,我们具体怎么发布数据,都是在这里完成的。

多数情况我们会结合着处理网络请求。和处理 UI 例如点击,拖到等事件,包裹这些请求和事件,来优雅地实现异步编程。下面例子是包裹了 okhttp 的请求。

上一篇下一篇

猜你喜欢

热点阅读