基于基于Retrofit2+RxJava2实现实现Android App自动更新自动更新
主要为大家详细介绍了基于Retrofit2+RxJava2实现Android App自动更新,具有一定的参考价值,感兴趣的小伙
伴们可以参考一下
本文实例为大家分享了Retrofit2 RxJava2实现Android App自动更新,具体内容如下
功能解析功能解析
自动更新可以说已经是App的标配了,很多第三方平台也都支持这个功能,最近手头上的项目需要加入这个App自动更新,考
虑到项目里有用到Retrofit2和RxJava2,于是打算使用它俩自己实现这个功能。
分析App自动更新,可以分为以下三个功能点:
1.APK文件的下载
2.下载进度的实时更新显示
3.下载完成后的自动安装
其中比较难的一点是下载进度的实时更新显示,更难的是如何优雅的进行下载进度的更新显示,这也是为什么我用Retrofit2和
RxJva2实现的原因。
用过Retrofit的人都知道他的内部是基于OkHttp实现的,OkHttp大家可能都不陌生,本次解决如何优雅的进行下载进度的更新
显示的关键就在OkHttp的拦截器中,拦截器可谓是OKHttp的一大精髓,通过拦截器我们可以拿到Http的请求和响应信息,拿
到了这些,你想干什么都行了。本次解决问题的核心就是在拦截器中拿到下载内容的长度并通过自定义的RxBus发送事件将下
载信息发送出去,然后在合适的地方拿到这些下载信息,通过Notification实时展示下载进度。
先上一张App自动更新的流程图
功能实现功能实现
首先根据功能需求我创建了七个类:
1.ApiManager(Retrofit初始化和Api接口定义)
2.ApkLoadingBean(下载长度和文件总长度的数据类)
3.ApkResponseBody(自定义继承OKHttp的ResponseBody的类)重点重点
4.RxBus(使用RxJava实现的‘EventBus')重点重点
5.UpdateApkService(更新服务,在这里开启下载和订阅下载进度)重点重点
6.UpdateHelper(检查更新、弹出更新对话框)
评论0
最新资源