android 自动检测版本升级
在我们APP的开发中,往往都会遇到版本的升级,因为不可能有任何一个应用做的完美无缺,所以版本升级对APP应用来说是不可缺少的一部分.像新浪微博等一些应用软件,三天两头提醒我升级.不过这样也很正常,就像android 升级一样,为了给用户提供更方便更人性化的操作.说下具体实现吧,不过我是参考别人的。不管对你们有没有帮助,总之对我有帮助啊,如果日后用到就直接copy了.哈哈,不扯了。首先看一个文件manifest文件.
[java]
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jj.upgrade"
android:versionCode="1"
android:versionName="1.0" >
我们可以很清楚的看到versionCode和versionName,我们一般用versionCode来实现,
实现原理很简单:服务器端有个serverVersion,我们本地有个localVersion.服务器端serverVersion>localVersion,这个时候我们就需要进行升级版本.原理大致就是这样。具体实现请看下面.
[java]
package com.jj.upgrade;
import com.jj.Service.UpdateService;
import android.app.AlertDialog;
import android.app.Application;
import android.content.DialogInte易做图ce;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
/***
* MyApplication
*
* @author zhangjia
*
*/
public class MyApplication extends Application {
public static int localVersion = 0;// 本地安装版本
public static int serverVersion = 2;// 服务器版本
public static String downloadDir = "jj/";// 安装目录
@Override
public void onCreate() {
super.onCreate();
try {
PackageInfo packageInfo = getApplicationContext()
.getPackageManager().getPackageInfo(getPackageName(), 0);
localVersion = packageInfo.versionCode;
} catch (NameNotFoundException e) {
e.printStackTrace();
}
/***
* 在这里写一个方法用于请求获取服务器端的serverVersion.
*/
}
}
我们一般把全局的东西放到application里面.
[java]
public class MainActivity extends Activity {
private MyApplication myApplication;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
checkVersion();
}
/***
* 检查是否更新版本
*/
public void checkVersion() {
myApplication = (MyApplication) getApplication();
if (myApplication.localVersion < myApplication.serverVersion) {
// 发现新版本,提示用户更新
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("软件升级")
.setMessage("发现新版本,建议立即更新使用.")
.setPositiveButton("更新",
new DialogInte易做图ce.OnClickListener() {
public void onClick(DialogInte易做图ce dialog,
int which) {
Intent updateIntent = new Intent(
MainActivity.this,
UpdateService.class);
updateIntent.putExtra(
"app_name",
getResources().getString(
R.string.app_name));
startService(updateIntent);
&
补充:移动开发 , Android ,