当前位置: 首页 > news >正文

2021好心人给个开车的网站网址域名查询官网

2021好心人给个开车的网站,网址域名查询官网,凡客模板wordpress,外贸公司如何做网站我们应该都有类似的使用体验#xff0c;当一款APP需要更新是#xff0c;进入界面会提醒有新的更新是否更新#xff0c;这里有那么几个步骤1、首先检测当前版本2、判断服务器中版本3、如果有更新则点击更新#xff0c;下载安装包#xff0c;下载完成后自动安装具体代码怎么…我们应该都有类似的使用体验当一款APP需要更新是进入界面会提醒有新的更新是否更新这里有那么几个步骤1、首先检测当前版本2、判断服务器中版本3、如果有更新则点击更新下载安装包下载完成后自动安装具体代码怎么实现呢下面我们一起看一下/** 获取当前程序的版本号*/private String getVersionName() throws Exception{//获取packagemanager的实例PackageManager packageManager getPackageManager();//getPackageName()是你当前类的包名0代表是获取版本信息PackageInfo packInfo packageManager.getPackageInfo(getPackageName(), 0);return packInfo.versionName;}读取服务器版本号/** 用pull解析器解析服务器返回的xml文件 (xml封装了版本号)*/public static UpdataInfo getUpdataInfo(InputStream is) throws Exception{XmlPullParser parser Xml.newPullParser();parser.setInput(is, utf-8);//设置解析的数据源int type parser.getEventType();UpdataInfo info new UpdataInfo();//实体while(type ! XmlPullParser.END_DOCUMENT ){switch (type) {case XmlPullParser.START_TAG:if(version.equals(parser.getName())){info.setVersion(parser.nextText()); //获取版本号}else if (url.equals(parser.getName())){info.setUrl(parser.nextText()); //获取要升级的APK文件}else if (description.equals(parser.getName())){info.setDescription(parser.nextText()); //获取该文件的信息}break;}type parser.next();}return info;}下载public static File getFileFromServer(String path, ProgressDialog pd) throws Exception{//如果相等的话表示当前的sdcard挂载在手机上并且是可用的if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){URL url new URL(path);HttpURLConnection conn (HttpURLConnection) url.openConnection();conn.setConnectTimeout(5000);//获取到文件的大小pd.setMax(conn.getContentLength());InputStream is conn.getInputStream();File file new File(Environment.getExternalStorageDirectory(), updata.apk);FileOutputStream fos new FileOutputStream(file);BufferedInputStream bis new BufferedInputStream(is);byte[] buffer new byte[1024];int len ;int total0;while((len bis.read(buffer))!-1){fos.write(buffer, 0, len);total len;//获取当前下载量pd.setProgress(total);}fos.close();bis.close();is.close();return file;}else{return null;}}版本匹配、自动安装/** 从服务器获取xml解析并进行比对版本号*/public class CheckVersionTask implements Runnable{public void run() {try {//从资源文件获取服务器 地址String path getResources().getString(R.string.serverurl);//包装成url的对象URL url new URL(path);HttpURLConnection conn (HttpURLConnection) url.openConnection();conn.setConnectTimeout(5000);InputStream is conn.getInputStream();info UpdataInfoParser.getUpdataInfo(is);if(info.getVersion().equals(versionname)){Log.i(TAG,版本号相同无需升级);LoginMain();}else{Log.i(TAG,版本号不同 ,提示用户升级 );Message msg new Message();msg.what UPDATA_CLIENT;handler.sendMessage(msg);}} catch (Exception e) {// 待处理Message msg new Message();msg.what GET_UNDATAINFO_ERROR;handler.sendMessage(msg);e.printStackTrace();}}}Handler handler new Handler(){Overridepublic void handleMessage(Message msg) {// TODO Auto-generated method stubsuper.handleMessage(msg);switch (msg.what) {case UPDATA_CLIENT://对话框通知用户升级程序showUpdataDialog();break;case GET_UNDATAINFO_ERROR://服务器超时Toast.makeText(getApplicationContext(), 获取服务器更新信息失败, 1).show();LoginMain();break;case DOWN_ERROR://下载apk失败Toast.makeText(getApplicationContext(), 下载新版本失败, 1).show();LoginMain();break;}}};/*** 弹出对话框通知用户更新程序** 弹出对话框的步骤* 1.创建alertDialog的builder.* 2.要给builder设置属性, 对话框的内容,样式,按钮* 3.通过builder 创建一个对话框* 4.对话框show()出来*/protected void showUpdataDialog() {AlertDialog.Builder builer new Builder(this) ;builer.setTitle(版本升级);builer.setMessage(info.getDescription());//当点确定按钮时从服务器上下载 新的apk 然后安装builer.setPositiveButton(确定, new OnClickListener() {public void onClick(DialogInterface dialog, int which) {Log.i(TAG,下载apk,更新);downLoadApk();}});//当点取消按钮时进行登录builer.setNegativeButton(取消, new OnClickListener() {public void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubLoginMain();}});AlertDialog dialog builer.create();dialog.show();}/** 从服务器中下载APK*/protected void downLoadApk() {final ProgressDialog pd; //进度条对话框pd new ProgressDialog(this);pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);pd.setMessage(正在下载更新);pd.show();new Thread(){Overridepublic void run() {try {File file DownLoadManager.getFileFromServer(info.getUrl(), pd);sleep(3000);installApk(file);pd.dismiss(); //结束掉进度条对话框} catch (Exception e) {Message msg new Message();msg.what DOWN_ERROR;handler.sendMessage(msg);e.printStackTrace();}}}.start();}//安装apkprotected void installApk(File file) {Intent intent new Intent();//执行动作intent.setAction(Intent.ACTION_VIEW);//执行的数据类型intent.setDataAndType(Uri.fromFile(file), application/vnd.android.package-archive);startActivity(intent);}/** 进入程序的主界面*/private void LoginMain(){Intent intent new Intent(this,MainActivity.class);startActivity(intent);//结束掉当前的activitythis.finish();}相关类public class UpdataInfo {private String version;private String url;private String description;public String getVersion() {return version;}public void setVersion(String version) {this.version version;}public String getUrl() {return url;}public void setUrl(String url) {this.url url;}public String getDescription() {return description;}public void setDescription(String description) {this.description description;}}相关布局http://192.168.0.64:8080/mobilesafe.apk检测到最新版本请及时更新
http://www.pierceye.com/news/251255/

相关文章:

  • 怎样查看网站总浏览量寿县有做网站开发的吗
  • 东莞网站建设价格价格网建企业
  • 做播放器电影网站需要多少钱6网络工程师证
  • dw怎么做网站标题图标网站建设进度表 免费下载
  • 西安哪些做网站的公司好做电子商务网站的意义
  • 圣融网站建设包装设计网站是什么样子的
  • 网站建设的利润设计宝
  • 厦门网站制作案例dede做手机网站
  • 网站建设 环保 图片重庆信息网
  • 做网站的主流软件珠海网站建设珠海
  • 江门市网站建设 熊掌号wordpress分类不显示图片
  • 上海做网站技术有趣的网站小游戏
  • 网站建设需要哪些内容中国建设银行对公网站
  • 网站菜单实现原理全网营销外包
  • 江阴招聘网站建设学徒开源网站开发文档下载
  • 金融网站开发公司六安城市网新闻
  • 什邡网站建设公司linux怎么使用wordpress
  • 安阳网站建设公司网络推广的目标
  • 人像摄影网站有哪些贵阳网站制作企业
  • 山西山西省建设厅网站首页哪个网站做分享赚佣金
  • 曲靖网站制作一条龙赣州章贡区邮政编码是多少
  • 海南省网站设计公司网址百度小说风云榜排名
  • 刷网站关键词排名原理寮步建设网站
  • 银川网站建设一条龙服务服装行业网站模板
  • 重庆建站程序建筑网站起名
  • 便宜网站制作wordpress函数手册
  • 适合在家做的网站工作做音乐网站要求
  • 在哪个网站做视频赚钱的建设彩票网站需要多少投资
  • 大连网站建设意动科技推荐做那个的电影网站
  • 博达 网站群建设wordpress打开乱码