版本更新

来源:互联网 发布:cpu评测软件 编辑:程序博客网 时间:2024/05/16 01:15

//首先添加权限

<uses-permission android:name="android.permission.INTERNET"/>

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


//之后封装Bean

public class UpdateBean {
    private String versionName;
    private String downloadUrl;
    private String updateLog;

    public String getVersionName() {
        return versionName;
    }

    public void setVersionName(String versionName) {
        this.versionName = versionName;
    }

    public String getDownloadUrl() {
        return downloadUrl;
    }

    public void setDownloadUrl(String downloadUrl) {
        this.downloadUrl = downloadUrl;
    }

    public String getUpdateLog() {
        return updateLog;
    }

    public void setUpdateLog(String updateLog) {
        this.updateLog = updateLog;
    }

    public UpdateBean(String versionName, String downloadUrl, String updateLog) {
        super();
        this.versionName = versionName;
        this.downloadUrl = downloadUrl;
        this.updateLog = updateLog;
    }

    public UpdateBean() {
        super();
        // TODO Auto-generated constructor stub
    }

    @Override
    public String toString() {
        return "UpdateBean [versionName=" + versionName + ", downloadUrl="
                + downloadUrl + ", updateLog=" + updateLog + "]";
    }

}

//编写Activity

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Xml;

import com.gblw.util.UpdateVersionUtil;

public class UpdateActivity extends Activity {
    private static final int SUCESS = 0;
    Handler handler = new Handler() {
        public void handleMessage(android.os.Message msg) {
            if (msg.what == 0) {
                UpdateBean bean = (UpdateBean) msg.obj;
                // System.out.println(UpdateBean.getDownloadUrl()
                //版本更新
                UpdateVersionUtil updataManger = UpdateVersionUtil
                        .getUpdataManger(bean.getDownloadUrl(),
                                UpdateActivity.this, bean.getVersionName(),
                                bean.getUpdateLog());

                updataManger.checkUpdata();

            }
        };
    };
    private UpdateBean updateBean;
    private ArrayList<UpdateBean> updateBeanList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_update);
        getData();
    }

    private void getData() {
        new Thread() {
            public void run() {
                try {
                    URL url = new URL(
                            "http://www.oschina.net/MobileAppVersion.xml");
                    HttpURLConnection openConnection = (HttpURLConnection) url
                            .openConnection();
                    openConnection.setConnectTimeout(5000);
                    openConnection.setReadTimeout(5000);
                    int responseCode = openConnection.getResponseCode();
                    if (responseCode == 200) {
                        InputStream inputStream = openConnection
                                .getInputStream();
                        getPull(inputStream);
                    }
                } catch (MalformedURLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            };
        }.start();
    }

    protected void getPull(InputStream inputStream) {
        try {
            //解析XML
            XmlPullParser newPullParser = Xml.newPullParser();
            newPullParser.setInput(inputStream, "utf-8");

            int eventType = newPullParser.getEventType();
            System.out
                    .println("###################################################");

            while (eventType != XmlPullParser.END_DOCUMENT) {

                switch (eventType) {
                case XmlPullParser.START_DOCUMENT:
                    updateBeanList = new ArrayList<UpdateBean>();
                    break;
                case XmlPullParser.START_TAG:
                    String tagName = newPullParser.getName();

                    if ("android".equals(tagName)) {
                        updateBean = new UpdateBean();
                    } else if ("versionName".equals(tagName)) {
                        updateBean.setVersionName(newPullParser.nextText());
                    } else if ("downloadUrl".equals(tagName)) {
                        updateBean.setDownloadUrl(newPullParser.nextText());

                    } else if ("updateLog".equals(tagName)) {
                        updateBean.setUpdateLog(newPullParser.nextText());

                    }
                    break;
                case XmlPullParser.END_TAG:
                    String name = newPullParser.getName();
                    if (name.equals("android")) {
                        updateBeanList.add(updateBean);

                    }
                    break;
                default:
                    break;
                }
                eventType = newPullParser.next();
            }
        } catch (XmlPullParserException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        handler.obtainMessage(SUCESS, updateBean).sendToTarget();
    }

}



0 0