2019独角兽企业重金招聘Python工程师标准>>>

1、前奏

经常有这样一个需求,就是开发安卓项目时,要升级后续版本。实现方式有很多种,大多的实现步骤就是放一份版本信息在服务器端,然后需要检测的时候,就拿本地apk的版本跟服务器的版本对比,如果不是最新的,就提示用户进行升级操作。需求来了,升级操作就需要我们先下载apk,然后调用安卓API进行自动替换安装。我们的这个update模块就是提供给你自动下载和安装一步到位。当然是否需要升级的版本比较,还是得你自己做。

2、废话少说先贴上使用方法

UpdateManager updateManager = new UpdateManager(Main.this);
updateManager.setUpdateCancelListener(new UpdateCancelListener() {@Overridepublic void updateCancel(CancelEvent cancelEvent) {notifyCanGotoLoginActivity();}
});
updateManager.setUpdateOkListener(new UpdateOkListener() {@Overridepublic boolean updateOk() {return true;//表示操作更新}
});
updateManager.doUpdate(downloadUrl, Constants.UPDATE_APK_PATH + Constants.APK_NAME, updateText);

对,就是这么简单。那个doUpdate方法的第一参数表示你要下载的apk网络地址。第二个参数表示你下载下来的apk的保存路径。第三个参数,顾名思义,就是在提示用户下载的提示用语。

其中上面的执行结果是,跳出一个对象选择框,这个选择框会提示用户是否进行更新。如果用户选择取消,就会被UpdateCancelListener事件监听到,上面就是跳转去登录界面,这里逻辑自己写。如果用户点击了确定,就会被UpdateOkListener事件监听到。UpdateOkListener中的updateOk方法有个返回结果需要你返回。你可以在这个事件里做些判断收尾操作。如果你返回true,那么就系统就会执行更新操作。接下来的事情就不用你管了。如果你返回false,系统就不会去执行更新操作。那你就可以自己跳转到相应界面去即可。

3、上面的doUpdate方法调用会提示用户是否下载安装。如果不想跳出对话框提示用户是否进行下载安装。而直接去下载安装,就可以直接这样调用:

UpdateManager updateManager = new UpdateManager(Main.this);
updateManager.doDownloadInstall(downloadUrl, Constants.UPDATE_APK_PATH + Constants.APK_NAME, updateText);

两个参数跟上面的一样。顺便说一句,想使用更详细的配置,可以使用UpdateConfig对象作为参数传入。

4、特别注意

这个更新工具中使用了Handler的消息机制。而安卓默认除开UI线程,其他线程是不开启这个消息机制的。所以,在是使用前后开启一下。Looper.prepare();...中间的代码就是上面的代码...Looper.loop();你懂的吧。Looper.loop();后面的代码不会被马上执行这个你应该知道的吧,所以要小心哈。

源码在github上有:https://github.com/bigapple520520/bigapple     也可以加QQ群:159392353不过我也是个苦逼的程序员,现在群里没人,就算加了我也只是偶尔回复一下,上班时间没有过多时间啊。当然有好的建议我们还是可以交流一下。非诚勿扰哈。

转载于:https://my.oschina.net/u/1271235/blog/163932

bigapple之utils-update部分apk自动下载安装相关推荐

  1. 墨菲的鬼魂重现 / 金蝶ERP 资安大漏洞 (非授权补丁自动下载安装)

    <墨菲定律>(Murphy's Law):Anything that can go wrong will go wrong. :"凡事只要有可能出错,那就一定会出错." ...

  2. 关于从WEB服务器自动下载安装可执行性文件的方法

    在介绍方法之前,首先声明我是个纯粹地.不折不扣地.完完全全地ASP菜鸟,如不是客户所迫,我不会有兴趣去折腾这些对我来说毫无意义的东西(或许某些人对这些很感兴趣,那就另当别论了).当客户要求我做一个从W ...

  3. ActiveX控件打包成Cab置于网页中自动下载安装

    From: http://www.iteye.com/topic/110834 makeCAB.rar (188.5 KB) [背景] 做过ActiveX控件的朋友都知道,要想把自己做的ActiveX ...

  4. 如何解决电脑不停自动下载安装软件问题?

    如何解决电脑不停自动下载安装软件问题? 一.查看网络使用 1.当出现这情况后,我们首先要做的就是查看一下任务管理器里面的网络资源管理,看看是哪个程序,在偷偷的连接网络下载软件,先按住电脑的CTRL+A ...

  5. ActiveX控件打包成Cab置于网页中自动下载安装 (收藏未实践测试)

    from http://blog.csdn.net/htqlhy/article/details/7937897?locationNum=12 [背景]         做过ActiveX控件的朋友都 ...

  6. ActiveX控件打包成Cab置于网页中自动下载安装(转载)

    原文出自http://www.iteye.com/topic/110834 [背景] 做过ActiveX控件的朋友都知道,要想把自己做的ActiveX控件功能放在自己的网页上使用,那么用户在客户端就必 ...

  7. 本文讲解使用apt-get 自动下载安装arm-linux-gcc和arm-linux-g++。

    本文讲解使用apt-get 自动下载安装arm-linux-gcc和arm-linux-g++. 使用如下命令进行arm-linux-gcc的安装: sudo apt-get install gcc- ...

  8. 【点击链接,自动下载安装APP,小米公司的坑】在浏览器中, 我们以为回退就能解决误点击。其实是不管用的。

    2018-5-29,更新解释 不是西瓜视频的坑. 是小米手机,小米公司的坑,浏览器点击什么链接后,后台或下拉菜单中就自动开始了下载安装  APP. 这类链接大多数是广告链接.小米手机没有提示提醒,也不 ...

  9. ActiveX控件打包成Cab实现浏览器自动下载安装

    前言 我们在浏览器中使用我们自己的一些OCX,或者是DLL这一类的文件,在X86的机器上需要我们手动将这些文件拷贝到Windows/System32 文件夹下面去,然后通过Dos命令regsvr32 ...

最新文章

  1. 一个GDIPlus的Bug -- OutofMemory异常
  2. Apache简单配置(4)搭建Discuz 7.0.0论坛
  3. 虚拟化厂商VMware、微软和思杰的vGPU支持概述
  4. 一道题,最小操作次数使数组元素相等引发的思考
  5. 在数组中查找指定元素_剑指 offer 第一题: 二维数组中的查找
  6. databasemetadata获取表注释_宏基因组测序中短序列的注释
  7. 将Android应用程序打包
  8. LeetCode 2086. 从房屋收集雨水需要的最少水桶数(贪心)
  9. rabbitmq+topic+java_译:5.RabbitMQ Java Client 之 Topics (主题)
  10. tmux手册中文翻译
  11. ASP.NET MVC 缓存使用示例
  12. 第二周作业购物车程序
  13. 01 分布式系统架构的冰与火
  14. python文本处理的第三方库是什么,python - 实现文本分类[简单使用第三方库完成]...
  15. 荣耀7点击Android版本,荣耀7全网通版Android5.0 电信版本刷机工具
  16. Python让Excel飞起来—批量制作常用图表
  17. python使用matplotlib库构建动态图表 --基于animation模块
  18. Linux 4.15亮点特性
  19. Android 模拟屏幕点击和物理按键方式
  20. rk3399性能_(三)感知与大脑——5.机器人大脑嵌入式主板性能对比

热门文章

  1. C#教程8:面向对象编程【02】
  2. python装饰器_python装饰器完全指南之一
  3. inovance变频器说明书参数设置_变频器控制电机速度时,面板调速如何切换为电位器调速...
  4. c++语言编辑简单的计算器,c++编写简单的计算器程序
  5. mysql union join_MySQL 超新手入门(5) JOIN 与 UNION 查询
  6. mysql主键索引_MySQL索引之主键索引
  7. 10参数_小米10和oppofindx2哪个好用 参数配置对比性能评测
  8. Opencv3.4.1中csSaveImage
  9. OTSU算法(也称最大类间差法,有时也称之为大津算法)
  10. 前端面试-综合问题版