okHttp,GreenDao,EventBus简单封装使用

介绍

开门见山,大体思路是在Activity中启动服务,通过服务创建Http请求,请求处理结果通过EventBus通知前台更新。

okHttp封装 实现如下接口

blob.png

blob.png

blob.png

简单实现后,子类继承即可方便调用,少去很多重复代码。下面贴出继承后的代码,以请求百度地址为例:

blob.png

大家可以看到子类实现可以很简单而且很清晰明了,大家注意到里面有个getPostEvent()方法return this,这是为了每个接口失败的返回都通过网络对象通知前台,因为懒得定义新的对象再post通知,

这个例子中成功请求后就往前台通知接口中返回的数据,这样在实际项目中的确是有用的,像前台要知道更新了什么数据,更新了多少条,很容易就实现了。

数据库是在greenDao的基础上抽象出了一个DataBaseManager通过泛型可以简单实现数据中每张表的增删改查。看了下面接口,大家应该就明白了:

blob.png

blob.png

增删改查都没有问题了。也可以继承如下:

blob.png

子类需要实现getAbStractDao,返回具体的DAO类,或者直接在代码中写:

blob.png

数据库操作,一劳永逸,而且异常捕获全在DataBaseManager中,统一处理。下面是IntentService

blob.png

前台所有请求通过调用服务启动,并由IntentService自己管理生命周期,网络处理完毕后即可自己释放掉。通过Bundle携带数据过来,并传递给Http请求。具体Get,post请求源码中有例子,这里就不一一描述,前台接受如下:

blob.png

总结

这是本人一点点小分享,有兴趣的大家可以下载源码查看,地址是:https://github.com/zzyandroid0425/EXP

源码中还有好多项目中经常用到的东西,比如常见的工具类,常用的BaseRecyclerViewAdapter,AotuGridLayoutManager,也都是自己查询资料,并总结到里面,慢慢的做为一个项目的基础框架使用,后期还会加入android data binding,自己也是准备在现在的项目中去试用这个官方的框架。一起学习。谢谢!