一、主要应用异步消息处理机制,在子线程进行版本检测和版本对比,如有新版本则开启新的线程去下载,并在progressDialog上显示下载进度,最后自动安装,这就是大概的实现思路。主要用到的知识就是网络请求和异步消息处理,以及文件读写。
二、代码如下
1、主活动
private UpdateAppManager manager; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.guide); manager=new UpdateAppManager(this); manager.getUpdateMsg();//检查更新
2、更新管理类
public class UpdateAppManager { // 外存sdcard存放路径 private static final String FILE_PATH = Environment.getExternalStorageDirectory() +"/" + "AutoUpdate" +"/"; // 下载应用存放全路径 private static final String FILE_NAME = FILE_PATH + "AutoUpdate.apk"; // 准备安装新版本应用标记 private static final int INSTALL_TOKEN = 1; //Log日志打印标签 private static final String TAG = "Update_log"; private Context context; //获取版本数据的地址 private String version_path = "http://10.3.3.239/get_data.json"; //获取新版APK的默认地址 private String apk_path = "http://10.3.3.239/PLAYBULBX.apk"; // 下载应用的进度条 private ProgressDialog progressDialog; //新版本号和描述语言 private int update_versionCode; private String update_describe; public UpdateAppManager(Context context) { this.context = context; } /** * 获取当前版本号 */ private int getCurrentVersion() { try { PackageManager manager = context.getPackageManager(); PackageInfo info = manager.getPackageInfo(context</