android app版本更新 简书,android 版本更新

老早老早以前,版本更新代码里有一个 VersionManager 类,管理的所有的一切,也曾在那基础上新增需求。只知道,好复杂。

趁有空,稍微理了下。

d5b90dc0e586

IApkUpdate  升级接口,主要定义了几个回调方法。两个子类,升级通知接口,用于通知栏。升级对话框接口,用于应用上弹升级对话框。相应的实现类是 ApkUpdateNotification, ApkUpdateDialog。

IApkDownloadLogic 升级逻辑接口,主要定义了开始下载,安装应用等方法。实现类ApkDownloadLogic(单例)持有三个对象,分别是 下载类,对话框,通知栏。

当 ApkDownloader 开始下载,下载进度,下载完成,下载失败时,都会 EventBus 将事件通知给 ApkDownloadLogic,然后再转告给 对话框,通知栏。

UpdateManager 类则是负责一些业务的逻辑,比如一周内关闭三次不再弹升级对话框。该类是对外开放的。比如,首页请求完接口之后,直接调用 UpdateManager.show() 弹出升级对话框。注意,这里并没有持有 对话框,通知栏的对象。

以上都是在 common-ui 模块里,公用UI。

而 ApkUpdateNotification,ApkUpdateDialog 则是在上层模块(引入common-ui 模块)。 这样设计是为了上层模块可以定制属于自己的通知栏,对话框等。而不用修改底层的逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值