Applcation
public class Appl extends Application { @Override public void onCreate() { super.onCreate(); x.Ext.init(this); x.Ext.setDebug(false); } } Mainpackage 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); } }Versionpackage com.liu.asus.jishi20170916; /** * Created by asus on 2017/9/16. */ public class Version { public int version=200; public String url; }