前言:
在Android的app中,经常会收到应用程序有新版本发布,询问是否更新的对话框,点击更新之后,安装成功,之后会显示如下图所示的页面,询问是否打开这个新安装的apk.这个是怎么做到的呢?
实现步骤:
在这之前首先要说一个关于自动更新的流程:
1.发现新版本,弹出对话框通知更新
2.点击更新,下载新版本的.apk文件到本地
3.安装这个apk
这里我们主要说的就是这个第三步,通知Android自动自动安转apk,代码非常简单:
//apk文件的本地路径
File apkfile = new File(apkFilePath);
//会根据用户的数据类型打开android系统相应的Activity。
Intent intent = new Intent(Intent.ACTION_VIEW);
//设置intent的数据类型是应用程序application
intent.setDataAndType(Uri.parse("file://" + apkfile.toString()), "application/vnd.android.package-archive");
//为这个新apk开启一个新的activity栈
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//开始安装
startActivity(intent);
//关闭旧版本的应用程序的进程
android.os.Process.killProcess(android.os.Process.myPid());
这里有两个需要注意的地方
1.为新版本的应用程序创建一个新的activity栈
2.关闭旧版本应用程序的进程
没有这两句,安装完新软件,会出现闪退效果,需要手动找到图标重启才能进入新安装的软件.