alwaystest / Blog

24 stars 2 forks source link

RxJava和RxAndroid,我来了 #36

Open alwaystest opened 7 years ago

alwaystest commented 7 years ago

RxJava和RxAndroid,我来了

标签(空格分隔): Rx Android


这两个脚手架一直如雷贯耳。备受大家推崇。还有与之相关联的Retrofit,在Android界搅起一阵Rx风潮。让人心向往之。不知道其中到底有什么奥妙。

之前也有想过主动接触这两门新潮的技术,但是限于能力和时间,一直没有沉下心来慢慢学习。

今天借着重构代码的机会,终于静下心来好好学了一把,用起来的确是爽。

在4月份的时候,曾经尝试用NodeJS编写爬虫,当时为了解决回调地狱的问题,草草过了一遍Promise库,勉强能用起来了。没想到Rx系列看起来跟Promise还真是像。仔细想想也正常,技术万变不离其宗,各个领域用到的理念其实也差不了多少。比如单元测试通用的依赖反转原则。

今天要重构的地方问题是这样的:

在Android的主线程中,调用了数据库查询,而这个查询特别费时,就导致每次触发查询时界面卡顿。说到这里,好像《第一行代码》中查询数据库也没有启用新的线程来处理,可能以数据库比较小吧,开不开无所谓。但是一旦遇到这种查询费时的,用户体验就很差了。所以解决的方案是找一个快速简便的方案,把数据库查询放到子线程中,然后在UI线程中回调,改变界面。

我觉得阅读顺序应该是这样:

  1. http://www.jianshu.com/p/9c2c8fe4bd0e 入门带逛,Android Studio配置依赖,初级API熟悉
  2. http://www.jianshu.com/p/a7b2142ceffa 入门带逛,处理数据
  3. http://www.jianshu.com/p/5e93c9101dc5 初级使用,可以开始跟着写了,最后有一个不错的例子。
  4. http://www.jianshu.com/p/6a6f7a4be38d 异步多线程切换
  5. http://gold.xitu.io/post/57d8b4b0c4c97100610509c6 手册,常用操作符
  6. http://gank.io/post/560e15be2dca930e00da1083 大字典,各种常用API用法普及

当然还有好多文章写的也很棒,总之大家都为新手入门做了许多工作,才有我们这些后来人的轻松。

刚开始看的时候会一片混乱,感觉这么多API都不是我想用的那个,但是这都是基础API,现在可能不需要,没准哪天就发现这么写更简单。先过一遍,不然后面的代码出来是看不懂的。有点印象就行,用到了再回来抄。

总之要耐心过一遍基础操作,后面的手册和字典在需要的时候可以用来查。然后就可以开始仿写了。会越用越熟练的。

Rx大法好。