#1 继承友盟更新的SDK,加入jar包和其他res文件
#2 按文档配置AndroidManifest.xml文件
#3 在应用的入口判断是非更新或强制更新(VersionCode增加就要更新,VersionName包含f就强制更新)
在onCreate方法中调入以下方法实现静默下载,然后提示更新。
/**
* 是否强制更新
*/
private void initUmengUpdate() {
UmengUpdateAgent.setDefault();
UmengUpdateAgent.setUpdateOnlyWifi(true);
UmengUpdateAgent.setRichNotification(false);
UmengUpdateAgent.setUpdateAutoPopup(false);
UmengUpdateAgent.silentUpdate(mContext);
UmengUpdateAgent.setUpdateListener(new UmengUpdateListener() {
@Override
public void onUpdateReturned(int status, UpdateResponse response) {
switch (status) {
case UpdateStatus.Yes:
upData(status, response);
break;
}
}
private void upData(int status,final UpdateResponse response) {
final String versionName = response.version;
final boolean ignore = UmengUpdateAgent.isIgnore(mContext, response);
File file = UmengUpdateAgent.downloadedFile(mContext, response);
if(file == null){
UmengUpdateAgent.startDownload(mContext, response);
UmengUpdateAgent.setDownloadListener(new UmengDownloadListener() {
@Override
public void OnDownloadUpdate(int arg0) {
}
@Override
public void OnDownloadStart() {
}
@Override
public void OnDownloadEnd(int arg0, String arg1) {
if(versionName.contains("f")||!ignore){
UmengUpdateAgent.showUpdateDialog(mContext, response);
}
}
});
}else{
if(versionName.contains("f")||!ignore){
UmengUpdateAgent.showUpdateDialog(mContext, response);
}
}
UmengUpdateAgent.setDialogListener(new UmengDialogButtonListener() {
@Override
public void onClick(int status) {
switch (status) {
case UpdateStatus.Update:
break;
case UpdateStatus.NotNow:
if(versionName.contains("f")){
//友盟统计
MobclickAgent.onKillProcess(mContext);
System.exit(0);
}else{
UmengUpdateAgent.ignoreUpdate(mContext, response);
}
break;
}
}
});
}
});
}