写自己的第一篇简书,还是有一点小激动的。
接触RxJava有一段时间了,一开始接触时,真是被Rxjava中得各种操作符弄得一头雾水,但是静下心来,学习一下RxJava,会发现这真的是一个很好的工具,善用RxJava真的能节省很多时间。
对于RxJava,我是用的最多的便是其中的异步任务处理,最近刚好写到了数据库SQLite,便记录一下自己在Sqlite操作中使用RxJava的感想。
数据库的建立:
简单地继承写法,创建了一个student表接下来就是实现这个数据库的方式,我之前的写法就是在线程里面执行数据操作,然后再通过接口回调实现相应地操作。
接口层关键部分代码就是
�创建新的线程来执行相应地数据操作,然后通过handler切换到主线程,再进行接口回调,在activity中进行ui操作总结一下,真个思路还是很明了的,就是需要定义接口,再进行线程切换。如果能将这些操作封装起来的话,那就不用写这么多了。
RxJava版本的DBManager:
将回调接口都省掉,返回类型直接定义成Observable就插入而言:
isExistStudent也是一个Observable用来先查询数据库是否存在该学生,然后再接着返回一个insert的操作,利用create来创建一个Observable在io线程中执行,最后在activity里可以直接拿到这个observable,并且在主线程是监听,就可以实现相应地ui操作activity中得相应操作:
这样写的话,就可以让整个操作变成一个链式操作,让思路更清晰明了再实现一个获取全部列表的:
获取全部数据操作总结一些:
在刚刚的操作中,就是将线程中的耗时操作放入到create中执行,然后异步操作和切换线程都可以连着整个链一直写下去,不用再额外定义其他接口,并且整个流程的起点到终点都可以一目了然。
并且,对于以前的一些采取回调的接口,一旦逻辑复杂起来,就需要写得很复杂,代码可读性不高,采用RxJava后,能够使整个逻辑更清晰明了。并且可以直接利用RxJava来改写之前采取回调的一些方法。
本篇文章是第一篇简书,有不足之处,望多多指出。
网友评论