当前位置:操作系统 > 安卓/Android >>

android 自动检测版本升级

在我们APP的开发中,往往都会遇到版本的升级,因为不可能有任何一个应用做的完美无缺,所以版本升级对APP应用来说是不可缺少的一部分.像新浪微博等一些应用软件,三天两头提醒我升级.不过这样也很正常,就像android 升级一样,为了给用户提供更方便更人性化的操作.说下具体实现吧,不过我是参考别人的。不管对你们有没有帮助,总之对我有帮助啊,如果日后用到就直接copy了.哈哈,不扯了。
首先看一个文件manifest文件.
[java] 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.jj.upgrade" 
    android:versionCode="1" 
    android:versionName="1.0" > 
我们可以很清楚的看到versionCode和versionName,我们一般用versionCode来实现,
实现原理很简单:服务器端有个serverVersion,我们本地有个localVersion.服务器端serverVersion>localVersion,这个时候我们就需要进行升级版本.原理大致就是这样。具体实现请看下面.
[java] 
package com.jj.upgrade; 
 
import com.jj.Service.UpdateService; 
 
import android.app.AlertDialog; 
import android.app.Application; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.content.pm.PackageInfo; 
import android.content.pm.PackageManager.NameNotFoundException; 
 
/***
 * MyApplication
 * 
 * @author zhangjia
 * 
 */ 
public class MyApplication extends Application { 
 
    public static int localVersion = 0;// 本地安装版本 
 
    public static int serverVersion = 2;// 服务器版本 
 
    public static String downloadDir = "jj/";// 安装目录 
 
    @Override 
    public void onCreate() { 
        super.onCreate(); 
        try { 
            PackageInfo packageInfo = getApplicationContext() 
                    .getPackageManager().getPackageInfo(getPackageName(), 0); 
            localVersion = packageInfo.versionCode; 
        } catch (NameNotFoundException e) { 
            e.printStackTrace(); 
        } 
 
        /***
         * 在这里写一个方法用于请求获取服务器端的serverVersion.
         */ 
 
    } 
 

我们一般把全局的东西放到application里面.
[java] 
public class MainActivity extends Activity { 
    private MyApplication myApplication; 
 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
         
        checkVersion(); 
    } 
 
    /***
     * 检查是否更新版本
     */ 
    public void checkVersion() { 
        myApplication = (MyApplication) getApplication(); 
        if (myApplication.localVersion < myApplication.serverVersion) { 
 
            // 发现新版本,提示用户更新 
            AlertDialog.Builder alert = new AlertDialog.Builder(this); 
            alert.setTitle("软件升级") 
                    .setMessage("发现新版本,建议立即更新使用.") 
                    .setPositiveButton("更新", 
                            new DialogInterface.OnClickListener() { 
                                public void onClick(DialogInterface dialog, 
                                        int which) { 
                                    Intent updateIntent = new Intent( 
                                            MainActivity.this, 
                                            UpdateService.class); 
                                    updateIntent.putExtra( 
                                            "app_name", 
                                            getResources().getString( 
                                                    R.string.app_name)); 
                                    startService(updateIntent); 
        &
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,