android 版本更新

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

趁有空,稍微理了下。

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

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

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,986评论 25 709
  • 开发中对版本进行检查并更新的需求基本是所有应用必须有的功能,可是在实际开发中有些朋友就容易忽略一些细节。 版本更新...
    laogui阅读 14,965评论 19 131
  • 项目地址「AppUpdateDemo」 Android 版本更新 目录 功能介绍 效果图与示例 apk Gradl...
    千匍阅读 8,747评论 9 29
  • 自从友盟关闭了版本更新功能后,安卓的版本更新只能自己来撸了,结合之前友盟的版本更新,其实实现起来也简单,这里简单说...
    在寻找雪见的景天阅读 19,097评论 10 47
  • 这是一本关于练习的书。作者认为人与人并没有什么太大的区别,天赋并不存在,几乎每个人都是通过刻苦科学的练习,成为大师...
    观止ir阅读 1,693评论 0 1

友情链接更多精彩内容