安卓应用的版本更新

Posted Greyson_Guo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓应用的版本更新相关的知识,希望对你有一定的参考价值。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.example.updateApp_demo"
 android:versionCode="1" android:versionName="1.0" >
如上:安卓配置文件中,有版本号与版本名,一般用版本号(整型)来比较版本的新旧。下面是在代码中获取版本:
context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode;//或者用.versionName获取版本名

新版本下载的部分主要代码:
ProgressDialog m_progressDlg = new ProgressDialog(this);
m_progressDlg.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
// 设置ProgressDialog 的进度条是否不明确 false 就是不设置为不明确
m_progressDlg.setIndeterminate(false);
m_progressDlg.setTitle("正在下载");
m_progressDlg.setMessage("请稍候...");
m_progressDlg.show();
......
</pre><pre code_snippet_id="1597264" snippet_file_name="blog_20160304_5_2502288" name="code" class="java">//下面的代码在线程中进行
......
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url);
try 
 HttpResponse response = client.execute(get);
 HttpEntity entity = response.getEntity();
 long length = entity.getContentLength();

 m_progressDlg.setMax((int)length);//设置进度条的最大值

 InputStream is = entity.getContent();
 FileOutputStream fileOutputStream = null;
 if (is != null) 
  File file = new File(Environment.getExternalStorageDirectory(),m_appNameStr);
  fileOutputStream = new FileOutputStream(file);
  byte[] buf = new byte[1024];
  int ch = -1;
  int count = 0;
  while ((ch = is.read(buf)) != -1) 
   fileOutputStream.write(buf, 0, ch);
   count += ch;
   if (length > 0) 
    m_progressDlg.setProgress(count);
   
  
 
 fileOutputStream.flush();
 if (fileOutputStream != null) 
 fileOutputStream.close();
 
 m_mainHandler.post(new Runnable() 
  public void run() 
   m_progressDlg.cancel();
   Intent intent = new Intent(Intent.ACTION_VIEW);
   intent.setDataAndType(Uri.fromFile(
     new File(Environment.getExternalStorageDirectory(), m_appName)),
     "application/vnd.android.package-archive");
     startActivity(intent);
  
 );
  catch (ClientProtocolException e) 
 e.printStackTrace();
  catch (IOException e) 
 e.printStackTrace();

也可以使用一些平台的推送功能更新(如极光推送):http://docs.jpush.io/guideline/android_guide/

以上是关于安卓应用的版本更新的主要内容,如果未能解决你的问题,请参考以下文章

Gradle3.0.0 新旧项目适配记录一下

安卓应用的版本更新

为啥安卓手机老是闪退啊?

安卓开发应用闪退

移动端测试:优化原有功能,改动接口需要兼容新旧版本

如何自动更新应用程序;安卓