当Sqlite遇见了RxJava,第一篇简书

写自己的第一篇简书,还是有一点小激动的。

      接触RxJava有一段时间了,一开始接触时,真是被Rxjava中得各种操作符弄得一头雾水,但是静下心来,学习一下RxJava,会发现这真的是一个很好的工具,善用RxJava真的能节省很多时间。

      对于RxJava,我是用的最多的便是其中的异步任务处理,最近刚好写到了数据库SQLite,便记录一下自己在Sqlite操作中使用RxJava的感想。

数据库的建立:

《当Sqlite遇见了RxJava,第一篇简书》 简单地继承写法,创建了一个student表

接下来就是实现这个数据库的方式,我之前的写法就是在线程里面执行数据操作,然后再通过接口回调实现相应地操作。

《当Sqlite遇见了RxJava,第一篇简书》 接口层

关键部分代码就是

《当Sqlite遇见了RxJava,第一篇简书》 �创建新的线程来执行相应地数据操作,然后通过handler切换到主线程,再进行接口回调,在activity中进行ui操作

总结一下,真个思路还是很明了的,就是需要定义接口,再进行线程切换。如果能将这些操作封装起来的话,那就不用写这么多了。

RxJava版本的DBManager:

《当Sqlite遇见了RxJava,第一篇简书》 将回调接口都省掉,返回类型直接定义成Observable

就插入而言:

《当Sqlite遇见了RxJava,第一篇简书》 isExistStudent也是一个Observable用来先查询数据库是否存在该学生,然后再接着返回一个insert的操作,利用create来创建一个Observable在io线程中执行,最后在activity里可以直接拿到这个observable,并且在主线程是监听,就可以实现相应地ui操作

activity中得相应操作:

《当Sqlite遇见了RxJava,第一篇简书》 这样写的话,就可以让整个操作变成一个链式操作,让思路更清晰明了

再实现一个获取全部列表的:

《当Sqlite遇见了RxJava,第一篇简书》 获取全部数据操作

总结一些:

      在刚刚的操作中,就是将线程中的耗时操作放入到create中执行,然后异步操作和切换线程都可以连着整个链一直写下去,不用再额外定义其他接口,并且整个流程的起点到终点都可以一目了然。

      并且,对于以前的一些采取回调的接口,一旦逻辑复杂起来,就需要写得很复杂,代码可读性不高,采用RxJava后,能够使整个逻辑更清晰明了。并且可以直接利用RxJava来改写之前采取回调的一些方法。

     本篇文章是第一篇简书,有不足之处,望多多指出。

    原文作者:NKming
    原文地址: https://www.jianshu.com/p/00d478ea083c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞