项目需求:最初我们的应用只要上传就会自动更新,老大希望可以控制APP的版本更新,让太低版本的应用强制更新。版本不太低的可以不用更新。
实现步骤:
1:根据在线参数比较本地版本,本地版本太低则强制更新。
2:强制更新对话框只能有一个更新按钮 不能忽视,按back键退出应用。
问题:
怎么获取在线参数?
解决:
MobclickAgent.updateOnlineConfig(activity);
String upgrade_mode = MobclickAgent.getConfigParams(activity, "forceupdate");//获得线上参数
怎么获得本地版本信息?
解决:
float local_version = 0;
try {
local_version = activity.getPackageManager().getPackageInfo(activity.getPackageName(), 0).versionCode;//得到当前版本信息
} catch (PackageManager.NameNotFoundException e) {
L.i(TAG,"获取本地应用版本出错");
e.printStackTrace();
}
怎么根据是否是强制更新弹出不同的对话框?
解决:
首先判读是否需要强制更新,如果需要则UmengUpdateAgent.setUpdateAutoPopup(false);不自动弹出提示更新的对话框 而是弹出我们自定义的对话框
完整代码:
/**
* Created by wyq on 2016/2/18.
*/
public class VersionControlUpdate{
private static final String TAG = "VersionControlUpdate";
private Activity activity;
public static VersionControlUpdate getVersionControlUpdateInstance(){
return new VersionControlUpdate();
}
public boolean execute(Activity activity) {
this.activity = activity;
L.i(TAG, "VersionControlUpdate execute");
final boolean isforce = isForceUp