模拟版本更新

来源:互联网 发布:while的用法c语言 编辑:程序博客网 时间:2024/06/05 06:07

Applcation

public class Appl   extends Application {    @Override    public void onCreate() {        super.onCreate();        x.Ext.init(this);        x.Ext.setDebug(false);    }}Main
package com.liu.asus.jishi20170916;import android.app.ProgressDialog;import android.content.DialogInterface;import android.content.Intent;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.net.Uri;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Toast;import org.xutils.common.Callback;import org.xutils.http.RequestParams;import org.xutils.x;import java.io.File;import okhttp3.OkHttpClient;import okhttp3.Request;public class MainActivity extends AppCompatActivity {   private  String url="http://gdown.baidu.com/data/wisegame/f98d235e39e29031/baiduxinwen.apk";    private  Callback.Cancelable cancelable;    private ProgressDialog pro;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        x.view().inject(this);        Button bt_banben= (Button) findViewById(R.id.bt_banben);        pro = new ProgressDialog(this);        pro.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);        pro.setButton("暂停", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialogInterface, int i) {                cancelable.cancel();            }        });        bt_banben.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                try {                    PackageManager pack=getPackageManager();                    PackageInfo info = pack.getPackageInfo(MainActivity.this.getPackageName(), 0);                    Version version=new Version();                    version.url=url;                    if(info.versionCode<version.version){                        xiazai();                    }                    else{                        Toast.makeText(MainActivity.this, "已经是最新版本了", Toast.LENGTH_SHORT).show();                    }                } catch (PackageManager.NameNotFoundException e) {                    e.printStackTrace();                }            }        });    }    private void xiazai() {        RequestParams params=new RequestParams(url);        params.setAutoRename(true);        params.setCancelFast(true);        cancelable = x.http().get(params, new Callback.ProgressCallback<File>() {            @Override            public void onSuccess(File result) {                pro.cancel();                String absolutePath = result.getAbsolutePath();                System.out.println(absolutePath);                anzhuang(result);            }            @Override            public void onError(Throwable ex, boolean isOnCallback) {            }            @Override            public void onCancelled(CancelledException cex) {            }            @Override            public void onFinished() {            }            @Override            public void onWaiting() {            }            @Override            public void onStarted() {                 pro.show();            }            @Override            public void onLoading(long total, long current, boolean isDownloading) {          if(isDownloading){              pro.setMessage("版本更新中");              pro.setMax((int) total);              pro.setProgress((int) current);             }            }        });    }    private void anzhuang(File result) {        Intent intent = new Intent();        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        intent.setAction(android.content.Intent.ACTION_VIEW);        intent.setDataAndType(Uri.fromFile(new File(result.getAbsolutePath())),                "application/vnd.android.package-archive");        startActivity(intent);    }}
Version
package com.liu.asus.jishi20170916;/** * Created by asus on 2017/9/16. */public class Version {    public  int version=200;    public  String url;}