Android 中的响应式编程(1)

今天继续新的内容,应该不叫挖坑,应该叫留下伏笔。在 Android 世界里有几个框架是非常经典也是必不可少的。他们分别是 Dagger 在之前分享中,大家可能了解过一些有关基础关于dagger的知识和用法。还有就是今天带来的 RxAndroid,和随后会分享的 OKhttp 和 Retrofit。有了这些库,可以让我们的 android 开发过程变得轻松愉快。

今天我们来看一看可以让我们简单容易地实现 Android 端响应式编程的 RxAndroid。要想更好地理解以及在实际中使用 RxAndroid 库。我们首先要了解一下什么是响应式编程,reactive programming。这个概念当下也是火的不能再火了。

下面这句很关键,关键事要说三遍。

响应式编程是构建关系而不是赋值。

响应式编程是构建关系而不是赋值。

响应式编程是构建关系而不是赋值。

我们还是通过代码给大家演示一下,请看代码。

看一看上面的代码大家可以开动脑筋想一想,两次 c 输出是什么值,不要把问题想的复杂,其实计算机的世界就是 0 和 1,没有那么复杂。

两次结果都是 5 ,这个不难理解,不过这在现实世界里不是我们想要的。我们年龄会跟着岁月而成长,这是自然规律,也是响应式编程的一个反应。

要实现 c 随着 b 的变化并不难,响应式编程就是由此而来的。但是要是自己

做这些基础工作还是比较麻烦,毕竟项目不等人,我们还是拿来主义,说的再好听些,就是站在巨人的肩膀上。我们先看一看在 RxAndroid 是如何实现的 c 随着 b 变化而变化。

看一看这里 c 输出吧,正如我们期望的分别是 5 和 6。好吧虽然看上去不是那么优雅,而且没学过 rxAdnroid 会一头雾水,这是什么,不用急,接下来会为您解开他神秘的面纱。

我开始看到几个 Rxandroid 精彩的实例,便以为可以轻松理解和驾驭这个框架,其实不言,由于没弄清他本质,在随后的使用中给我带了许多困惑和疑虑。为了大家少走弯路,所以今天才将自己的一点经验分享出来,希望有助大家更好地理解 RxAndroid 这个框架。、

第一个基础概念就是 RxAndroid 主要做两件事,一个出发或者说广播一些信息,一个就是对这些信息感兴趣的可以接受到这信息。发出者不但可以发送信息,如果发出者因某些问题无法发送信息还会发送错误通知,如果信息发送完毕,同意也发送信息发送完了的通知,在接受方都有对应的方法来处理这些通知。

好我们创建了发送的通知,发送消息是小马学编程都有哪些课程,只管发送。我们接下来创建通知的接受者。

这就话应该是“对小马编程感兴趣的人(Observer)订阅(subscribe)发送小马编程课程的消息(Observable)”

可观察的者主要是根据订阅的行为来定义的,这句好需要理解一下。接受者仅仅关心通知内容,而非是否结束和是否发送方发生错误。

来看一个简单实例,发送通知,通知内容为小马编程的可能,那么 Observable 翻译为可以观察的,表示我们这个数组(小马编程的系列课程组成的数组)是可以观察的,just 这个方法返回一些列课程,一看不就是定一个数组吗,不是那么简单,这个数组已经不再是简单的数组了,是一个 Observable 的数组,可以被订阅的数组了。

也可以理解为数组的生产者,具有一定生产能力。

有了可观察的对象,我们就可以观察他了,拿什么观察他,观察到他我们怎么处理的数据呢,也是如何消费他们呢,我们就需要 Observer 登场来帮助我们实现这一切。也就是上面的代码,构建观察者(observer)和被观察者(observable)间的关系是由subscribe(订阅)来实现的。

上面代码中我们是返回为null 这里我们暂时创建数据供消费。

看一下效果,有关 Observer 中个个方法我会在下一次分享为大家分享。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180909B0GRQJ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券