一个简单的检查版本更新

来源:互联网 发布:萧敬腾唱功知乎 编辑:程序博客网 时间:2024/06/05 20:42
这里用的xutils进行的网络下载
package com.example.banben;import android.content.DialogInterface;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.os.Environment;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.Toast;import org.json.JSONException;import org.json.JSONObject;import org.xutils.common.Callback;import org.xutils.http.HttpMethod;import org.xutils.http.RequestParams;import org.xutils.x;import java.io.File;public class MainActivity extends AppCompatActivity {    String url="http://169.254.38.24/version.json";    private String upgradeinfo;    private RequestParams request;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        request=new RequestParams(url);        x.http().get(request, new Callback.CacheCallback<String>() {            @Override            public boolean onCache(String s) {                return false;            }            @Override            public void onSuccess(String s) {                JSONObject json= null;                try {                    json = new JSONObject(s);                    upgradeinfo = json.getString("upgradeinfo");                    //得到服务器的版本号                    String serverVersion = json.getString("serverVersion");                    //得到应用包的管理者                    PackageInfo pack = MainActivity.this.getPackageManager().getPackageInfo(MainActivity.this.getPackageName(), 0);                    //从管理者里面拿到应用版本号                    int versionCode = pack.versionCode;                    if(versionCode<Integer.valueOf(serverVersion)){                        new AlertDialog.Builder(MainActivity.this)                                .setTitle("版本更新")                                .setIcon(R.mipmap.ic_launcher)                                .setMessage(upgradeinfo)                                .setNegativeButton("取消", new DialogInterface.OnClickListener() {                                    @Override                                    public void onClick(DialogInterface dialogInterface, int i) {                                        Toast.makeText(MainActivity.this, "你不能点我的", Toast.LENGTH_SHORT).show();                                    }                                })                                .setNegativeButton("确定", new DialogInterface.OnClickListener() {                                    @Override                                    public void onClick(DialogInterface dialogInterface, int i) {                                        Toast.makeText(MainActivity.this, "谁让你点我的", Toast.LENGTH_SHORT).show();                                        x.http().request(HttpMethod.GET, request, new ProgressCallback<File>() {                                            @Override                                            public void onWaiting() {                                            }                                            @Override                                            public void onStarted() {                                            }                                            @Override                                            public void onLoading(long l, long l1, boolean b) {                                                String ss= Environment.getExternalStorageDirectory().getAbsolutePath()+"/downloads/";                                                request.setSaveFilePath(ss+"给要下载的文件取名字");                                                if(l==l1){                                                    Toast.makeText(MainActivity.this, "下载完成", Toast.LENGTH_SHORT).show();                                                }                                            }                                            @Override                                            public void onSuccess(File file) {                                            }                                            @Override                                            public void onError(Throwable throwable, boolean b) {                                            }                                            @Override                                            public void onCancelled(CancelledException e) {                                            }                                            @Override                                            public void onFinished() {                                            }                                        });                                    }                                }).create().show();                    }                } catch (JSONException e) {                    e.printStackTrace();                } catch (PackageManager.NameNotFoundException e) {                    e.printStackTrace();                }            }            @Override            public void onError(Throwable throwable, boolean b) {            }            @Override            public void onCancelled(CancelledException e) {            }            @Override            public void onFinished() {            }        });    }}
原创粉丝点击