private void checkVersion( AppVersion appVersion){if(StringUtils.isEmpty(appVersion.getNum())){UIHelper.ToastMessage(Setting.this, "获取不到最新版本,请稍后重试");return ;}if(Version.getName(Setting.this).compareTo(appVersion.getNum())>=0){UIHelper.ToastMessage(Setting.this, "当前版本号:"+appVersion.getNum()+"已是最新版本,谢谢使用");return ;}checkUpdate(appVersion);}private void checkUpdate(final AppVersion appVersion){String info = "发现新版本的应用\n" +"本地版本" + Version.getName(Setting.this) + "\n" +"最新版本:" + appVersion.getNum() + "\n" +"是否立即更新";builder = new AlertDialog.Builder(this);builder.setTitle("程序自动更新").setMessage(info).setIcon(R.drawable.refresh).setCancelable(false).setPositiveButton("确定", new DialogInterface.OnClickListener() {  public void onClick(DialogInterface dialog, int id) {         doUpdate(appVersion.getApkAddress());        dialog.dismiss();}}).setNegativeButton("取消", new  DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int i) { dialog.dismiss();}});apkhandler.post(new Runnable() {public void run() {Dialog dlg = builder.create();dlg.show();}});}private void doUpdate(final String apkDownAddr) {progressDlg = new ProgressDialog(this);progressDlg.setTitle("正在下载");progressDlg.setMessage("请稍候..");progressDlg.setProgressStyle(ProgressDialog.STYLE_SPINNER);handler.post(new Runnable() {public void run() {progressDlg.show();}});if (!isSdCardReady()) {UIHelper.ToastMessage(Setting.this, "SD卡没准备好");progressDlg.dismiss();return;}apkFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/temp/dianjiaqin_hy.apk";apkFile = new File(apkFilePath);if (apkFile.exists()) {apkFile.delete();}new Thread() {@Overridepublic void run() {try{  HttpUtils.download(apkDownAddr, apkFilePath,new DefaultHttpClient(new BasicHttpParams())); }catch(RuntimeException e){ UIHelper.ToastMessage(Setting.this, "更新失败,网络异常,请检查网络是否连接超时"); }apkhandler.post(new Runnable() {public void run() {progressDlg.cancel();}});Intent intent = new Intent(Intent.ACTION_VIEW);intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");Setting.this.startActivity(intent);applications.clearUserData();//applications.quit();AppManager.getAppManager().AppExit(getParent());}}.start();}public  boolean isSdCardReady() {return Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);}

更多相关文章

  1. Android的线程使用来更新UI----Thread、Handler、Looper、TimerT
  2. Android(安卓)LocationManager 使用
  3. Android异步消息处理机制完全解析-Handler详解
  4. android网络访问兼容
  5. Android之adt 23找不到NDK路径设置解决方案
  6. Android新线程中更新主线程UI中的View方法汇总
  7. Android(安卓)更新UI的两种方法——handler和runOnUiThread()
  8. android播放网络音频
  9. 更新Activity的几个方法

随机推荐

  1. 新建android project和其配置文件的基本
  2. Android自定义动画框架让View实现Path动
  3. Mstar虚拟按键触摸屏驱动(芯片msg2133,按键
  4. Android绘图之绘制太极图
  5. 查询能够响应某一Intent的所有Activity
  6. android日期选择器,从底部弹出的日期选择
  7. Androidstudio开发button按钮的操作以及
  8. Android利用shape画虚线
  9. android Q版本外部存储问题以及获取空间
  10. android Zxing二维码扫描 竖屏切换问题的