App实现自动更新

在Android的app中,如果有版本更新时,会询问是否更新的对话框,点击更新之后,安装成功!


实现步骤:


Step1:读取版本号

我们使用到的类PackageManager,PackageManager主要是管理应用程序包,通过它就可以获取应用程序信息。

[java]  view plain  copy
  1. PackageManager packageManager = this.getPackageManager();  
  2. String version = "";  
  3. try {//获得包的信息   
  4.     PackageInfo packInfo = packageManager.getPackageInfo(this.getPackageName(), 0);  
  5.     version = packInfo.versionName;//获取版本  
  6. catch (NameNotFoundException e) {  
  7.     e.printStackTrace();  
  8. }  

Step2:对比服务器中的版本

这里上传对比版本,是服务器端提供的端口



Step3:处理文件存放的位置(当然,这里需要对规定路径扫描,以免出现下载未安装需要重新下载)

这里应先判断是否存在SDCard,尽量不使用内存.



Step4:下载文件

服务器提供的更新接口中提供了最新版本的地址,我们只需要那最新版本的地址,使用HttpURLConnection类进行下载.

conn.getContentLength()可以获得文件的大小,再根据已下载的相除得到百分比,更新UI。

这里的已下载的是要保存文件的大小,这样可以避免存在已下载未安装的文件。



Step5:安装


[java]  view plain  copy
  1. //apk文件的本地路径  
  2. File apkfile = new File(apkFilePath);  
  3. //会根据用户的数据类型打开android系统相应的Activity。  
  4. Intent intent = new Intent(Intent.ACTION_VIEW);  
  5. //设置intent的数据类型是应用程序application  
  6. intent.setDataAndType(Uri.parse("file://" + apkfile.toString()), "application/vnd.android.package-archive");  
  7. //为这个新apk开启一个新的activity栈  
  8. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
  9. //开始安装  
  10. startActivity(intent);  
  11. //关闭旧版本的应用程序的进程  
  12. android.os.Process.killProcess(android.os.Process.myPid());  


这里有两个需要注意的地方

1.为新版本的应用程序创建一个新的activity栈

2.关闭旧版本应用程序的进程

没有这两句,安装完新软件,会出现闪退效果,需要手动找到图标重启才能进入新安装的软件.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值