android APP检测版本更新以及后台服务更新
版本更新是获取本地版本号跟服务器版本号进行对比,当有更新的时候服务器会上传新的APK文件,
并且版本号是比没更新的版本号要大的,因此就是版本号的比较来确定是否需要更新。当需要更新
的时候就通过启动后台服务来更新。介绍一下各个知识点:
1、获取本地版本号
//获取本地的版本号
private int getVersionCode(){
PackageManager packageManager=getPackageManager();
try {
PackageInfo packageInfo=packageManager.getPackageInfo(getPackageName(), 0);
int versionCode=packageInfo.versionCode;
return versionCode;
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return -1;
}
调用上面方法返回的就是本地版本号。
2、获取服务器版本号
private void checkVersion() {
final long startTime=System.currentTimeMillis();
new Thread(){
public void run(){
HttpURLConnection conn=null;
Message msg=Message.obtain();
try {
URL url=new URL(GlobalUrl.VERSION_URL);
conn=(HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
conn.connect();
int responseCode=conn.getResponseCode();
if(responseCode==200){
InputStream inputStream=conn.getInputStream();
ByteArrayOutputStream out=new ByteArrayOutputStream();
int len=0;
byte []buffer=new byte[1024];
while((len=inputStream.read(buffer))!=-1){
out.write(buffer, 0, len);
}
inputStream.close();
out.close();
String result=out.toString();
System.out.println("VersionResult:"+result);
String success = null;
try {
JSONObj