第一步:定义观察者
- public interface CheckVersionObserver {
- /**
- * 在MainActivity里面检测版本更新成功
- * @param mainEntity
- */
- public void onCheckNewVerSuccInMain(MainEntity mainEntity);
- /**
- * 检测新版本失败
- * @param errorCode
- * @param msg
- */
- public void onCheckNewVerFail(int errorCode,String msg);
- /**
- * 检测新版本成功
- * @param token
- * @param msg
- */
- public void onCheckNewVerSucc(CheckUpdataEntity newEntity);
- /**
- * 检测到版本可以升级,并且能够升级(含有内存卡)
- * @param token
- * @param msg
- */
- public void onCheckVerCanUpdate(String promt, String versionName);
- /**
- * 检测到版本可以升级,但不能够升级(无内存卡)
- */
- public void onCheckVerCanNotUpdate();
- /**
- * 下载失败
- * @param code
- * @param err
- */
- public void onUpdateError(String topic, String msg, String btnStr, final int type);
- /**
- * 正在更新下载
- * @param totalSize
- * @param downSize
- */
- public void onDataUpdating(int totalSize, int downSize);
- }
public interface CheckVersionObserver {
/**
* 在MainActivity里面检测版本更新成功
* @param mainEntity
*/
public void onCheckNewVerSuccInMain(MainEntity mainEntity);
/**
* 检测新版本失败
* @param errorCode
* @param msg
*/
public void onCheckNewVerFail(int errorCode,String msg);
/**
* 检测新版本成功
* @param token
* @param msg
*/
public void onCheckNewVerSucc(CheckUpdataEntity newEntity);
/**
* 检测到版本可以升级,并且能够升级(含有内存卡)
* @param token
* @param msg
*/
public void onCheckVerCanUpdate(String promt, String versionName);
/**
* 检测到版本可以升级,但不能够升级(无内存卡)
*/
public void onCheckVerCanNotUpdate();
/**
* 下载失败
* @param code
* @param err
*/
public void onUpdateError(String topic, String msg, String btnStr, final int type);
/**
* 正在更新下载
* @param totalSize
* @param downSize
*/
public void onDataUpdating(int totalSize, int downSize);
}
第二步:检测系统版本是否升级逻辑
- public class CheckNewVersionLogic extends BaseLogic<CheckVersionObserver>
- implements UpdateDownLoadResponse {
- private Context mContext;
- private Activity mActivity;
- private final static int DOWNLOAD_UPDATE = 1;
- private final static int DOWNLOAD_UPDATING = 2;
- private final static int DOWNLOAD_ERROR = 3;
- public Handler mDownloadHandler;
- private String downloadUrl;
- private ProgressDialog mDialog = null;
- private int mDownFileSize = 0;
- private int mDownSize = 0;
- public CheckNewVersionLogic() {
- }
- public CheckNewVersionLogic(Context context) {
- this.mContext = context;
- mActivity = (Activity) mContext;
- mDownloadHandler = new DownloadHandler();
- }
- /**
- * 判断检测更新请求是否成功
- *
- * @param vercode
- */
- public void CheckNewVersion(final String vercode) {
- new BackForeTask(true) {
- CheckUpdataEntity result = null;
- @Override
- public void onFore() {
- // TODO Auto-generated method stub
- if (result == null) {
- fireCheckNewVersionFail(-1, null);
- } else if (result.getRetcode() != 0) {
- fireCheckNewVersionFail(result.getRetcode(),
- result.getMessage());
- } else {
- fireCheckNewVersionSucc(result);
- }
- }
- @Override
- public void onBack() {
- // TODO Auto-generated method stub
- result = ProtocolImpl.getInstance().checkVersion(vercode);
- }
- };
- }
- /**
- * 主界面检查更新
- * @param token
- * @param firstopen
- * @param mobiletype
- * @param mobilesys
- * @param vercode
- */
- public void CheckNewVerInMain(final int firstopen,
- final String mobiletype, final String mobilesys, final String vercode) {
- new BackForeTask(true) {
- MainEntity result = null;
- @Override
- public void onFore() {
- // TODO Auto-generated method stub
- if (result == null) {
- fireCheckNewVersionFail(-1, null);
- } else if (result.getRetcode() != 0) {
- fireCheckNewVersionFail(result.getRetcode(),
- result.getMessage());
- } else {
- fireCheckNewVerSuccInMain(result);
- }
- }
- @Override
- public void onBack() {
- // TODO Auto-generated method stub
- result = ProtocolImpl.getInstance().checkVerInMain(firstopen, mobiletype, mobilesys, vercode);
- }
- };
- }
- private void fireCheckNewVerSuccInMain(MainEntity mainEntity){
- List<CheckVersionObserver> tmpList = getObservers();
- for (CheckVersionObserver observer : tmpList) {
- observer.onCheckNewVerSuccInMain(mainEntity);
- }
- }
- /**
- * 版本更新请求失败
- *
- * @param errorCode
- * @param msg
- */
- private void fireCheckNewVersionFail(int errorCode, String msg) {
- List<CheckVersionObserver> tmpList = getObservers();
- for (CheckVersionObserver observer : tmpList) {
- observer.onCheckNewVerFail(errorCode, msg);
- }
- }
- /**
- * 版本更新请求成功
- *
- * @param newEntity
- */
- private void fireCheckNewVersionSucc(CheckUpdataEntity newEntity) {
- List<CheckVersionObserver> tmpList = getObservers();
- for (CheckVersionObserver observer : tmpList) {
- observer.onCheckNewVerSucc(newEntity);
- }
- }
- /**
- * 检测到版本可以升级,并且能够升级(含有内存卡)
- *
- * @param promt
- * @param versionName
- */
- private void fireCheckVerCanUpdate(String promt, String versionName) {
- List<CheckVersionObserver> tmpList = getObservers();
- for (CheckVersionObserver observer : tmpList) {
- observer.onCheckVerCanUpdate(promt, versionName);
- }
- }
- /**
- * 检测到版本可以升级,但不能够升级(无内存卡)
- */
- private void fireCheckVerCanNotUpdate() {
- List<CheckVersionObserver> tmpList = getObservers();
- for (CheckVersionObserver observer : tmpList) {
- observer.onCheckVerCanNotUpdate();
- }
- }
- /**
- * 下载失败
- *
- * @param code
- * @param err
- */
- private void fireOnError(String topic, String msg, String btnStr,
- final int type) {
- List<CheckVersionObserver> tmpList = getObservers();
- for (CheckVersionObserver observer : tmpList) {
- observer.onUpdateError(topic, msg, btnStr, type);
- }
- }
- /**
- * 正在下载
- *
- * @param totalSize
- * @param downSize
- */
- private void fireOnDataUpdating(int downFileSize, int downSize) {
- List<CheckVersionObserver> tmpList = getObservers();
- for (CheckVersionObserver observer : tmpList) {
- observer.onDataUpdating(downFileSize, downSize);
- }
- }
- /**
- * 下载更新
- */
- public void downloadUpdate() {
- mDownloadHandler.sendEmptyMessage(DOWNLOAD_UPDATE);
- }
- /**
- * 正在下载更新
- *
- * @param totalSize
- * @param downSize
- */
- public void downloadUpdating(int totalSize, int downSize) {
- mDownFileSize = totalSize;
- mDownSize = downSize;
- mDownloadHandler.sendEmptyMessage(DOWNLOAD_UPDATING);
- }
- /**
- * 下载失败
- */
- public void downloadError() {
- mDownloadHandler.sendEmptyMessage(DOWNLOAD_ERROR);
- }
- /***
- * 选择是否更新版本
- */
- public void checkVersion(int serverVerCode, String promt, String versionName, String url) {
- Log.i("ciyunupdate", serverVerCode + "");
- System.out.println("serverVerCode" + serverVerCode);
- int appVerCode = 1;
- try {
- appVerCode = mContext.getPackageManager().getPackageInfo(
- mContext.getPackageName(), 0).versionCode;
- Log.i("ciyunupdate", appVerCode + "");
- System.out.println("appVerCode" + appVerCode);
- } catch (NameNotFoundException e) {
- e.printStackTrace();
- }
- if (serverVerCode > appVerCode) {
- if (!FileUtil.isSdCardExist()) {
- /*
- * showDialog(mContext.getString(R.string.str_version_update),
- * mContext.getResources().getString(R.string.no_sdcard),
- * mContext.getResources().getString(R.string.sure), 0);
- */
- fireCheckVerCanNotUpdate();
- } else {
- // popUpdateDlg(promt,versionName);
- downloadUrl = url;
- fireCheckVerCanUpdate(promt, versionName);
- }
- }
- }
- /**
- *
- * @Description:下载更新处理器
- * @author:
- * @see:
- * @since:
- * @copyright © ciyun.cn
- * @Date:2014年8月12日
- */
- private class DownloadHandler extends Handler {
- /**
- * {@inheritDoc}
- *
- * @see android.os.Handler#handleMessage(android.os.Message)
- */
- @Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- switch (msg.what) {
- case DOWNLOAD_UPDATE: {
- new Thread() {
- @Override
- public void run() {
- super.run();
- if (Utils.isExternalStorageRemovable()) {
- FileUtil.createFileEx(HealthApplication.UPDATAFILENAME);
- HttpPostEngine service = new HttpPostEngine();
- service.downloadUpdateFile(
- CheckNewVersionLogic.this,
- downloadUrl,
- FileUtil.updateFile.getPath());
- }
- }
- }.start();
- }
- break;
- case DOWNLOAD_UPDATING:
- fireOnDataUpdating(mDownFileSize, mDownSize);
- break;
- case DOWNLOAD_ERROR:
- fireOnError(
- mContext.getString(R.string.str_version_update),
- mContext.getString(R.string.str_download_err),
- mContext.getResources().getString(R.string.sure), 0);
- break;
- }
- }
- }
- @Override
- public void OnError(int code, String err) {
- // TODO Auto-generated method stub
- Log.v("update", code + "/" + err);
- if (mDialog != null && mDialog.isShowing()) {
- mDialog.dismiss();
- }
- mDownloadHandler.sendEmptyMessage(DOWNLOAD_ERROR);
- }
- @Override
- public void OnDataUpdated(int totalSize, int downSize) {
- // TODO Auto-generated method stub
- mDownFileSize = totalSize;
- mDownSize = downSize;
- mDownloadHandler.sendEmptyMessage(DOWNLOAD_UPDATING);
- }
- @Override
- public void OnUpdatedFinish() {
- // TODO Auto-generated method stub
- Uri uri = Uri.fromFile(FileUtil.updateFile);
- Intent intent = new Intent(Intent.ACTION_VIEW);
- intent.setDataAndType(uri, "application/vnd.android.package-archive");
- mActivity.startActivity(intent);
- }
- }
public class CheckNewVersionLogic extends BaseLogic<CheckVersionObserver>
implements UpdateDownLoadResponse {
private Context mContext;
private Activity mActivity;
private final static int DOWNLOAD_UPDATE = 1;
private final static int DOWNLOAD_UPDATING = 2;
private final static int DOWNLOAD_ERROR = 3;
public Handler mDownloadHandler;
private String downloadUrl;
private ProgressDialog mDialog = null;
private int mDownFileSize = 0;
private int mDownSize = 0;
public CheckNewVersionLogic() {
}
public CheckNewVersionLogic(Context context) {
this.mContext = context;
mActivity = (Activity) mContext;
mDownloadHandler = new DownloadHandler();
}
/**
* 判断检测更新请求是否成功
*
* @param vercode
*/
public void CheckNewVersion(final String vercode) {
new BackForeTask(true) {
CheckUpdataEntity result = null;
@Override
public void onFore() {
// TODO Auto-generated method stub
if (result == null) {
fireCheckNewVersionFail(-1, null);
} else if (result.getRetcode() != 0) {
fireCheckNewVersionFail(result.getRetcode(),
result.getMessage());
} else {
fireCheckNewVersionSucc(result);
}
}
@Override
public void onBack() {
// TODO Auto-generated method stub
result = ProtocolImpl.getInstance().checkVersion(vercode);
}
};
}
/**
* 主界面检查更新
* @param token
* @param firstopen
* @param mobiletype
* @param mobilesys
* @param vercode
*/
public void CheckNewVerInMain(final int firstopen,
final String mobiletype, final String mobilesys, final String vercode) {
new BackForeTask(true) {
MainEntity result = null;
@Override
public void onFore() {
// TODO Auto-generated method stub
if (result == null) {
fireCheckNewVersionFail(-1, null);
} else if (result.getRetcode() != 0) {
fireCheckNewVersionFail(result.getRetcode(),
result.getMessage());
} else {
fireCheckNewVerSuccInMain(result);
}
}
@Override
public void onBack() {
// TODO Auto-generated method stub
result = ProtocolImpl.getInstance().checkVerInMain(firstopen, mobiletype, mobilesys, vercode);
}
};
}
private void fireCheckNewVerSuccInMain(MainEntity mainEntity){
List<CheckVersionObserver> tmpList = getObservers();
for (CheckVersionObserver observer : tmpList) {
observer.onCheckNewVerSuccInMain(mainEntity);
}
}
/**
* 版本更新请求失败
*
* @param errorCode
* @param msg
*/
private void fireCheckNewVersionFail(int errorCode, String msg) {
List<CheckVersionObserver> tmpList = getObservers();
for (CheckVersionObserver observer : tmpList) {
observer.onCheckNewVerFail(errorCode, msg);
}
}
/**
* 版本更新请求成功
*
* @param newEntity
*/
private void fireCheckNewVersionSucc(CheckUpdataEntity newEntity) {
List<CheckVersionObserver> tmpList = getObservers();
for (CheckVersionObserver observer : tmpList) {
observer.onCheckNewVerSucc(newEntity);
}
}
/**
* 检测到版本可以升级,并且能够升级(含有内存卡)
*
* @param promt
* @param versionName
*/
private void fireCheckVerCanUpdate(String promt, String versionName) {
List<CheckVersionObserver> tmpList = getObservers();
for (CheckVersionObserver observer : tmpList) {
observer.onCheckVerCanUpdate(promt, versionName);
}
}
/**
* 检测到版本可以升级,但不能够升级(无内存卡)
*/
private void fireCheckVerCanNotUpdate() {
List<CheckVersionObserver> tmpList = getObservers();
for (CheckVersionObserver observer : tmpList) {
observer.onCheckVerCanNotUpdate();
}
}
/**
* 下载失败
*
* @param code
* @param err
*/
private void fireOnError(String topic, String msg, String btnStr,
final int type) {
List<CheckVersionObserver> tmpList = getObservers();
for (CheckVersionObserver observer : tmpList) {
observer.onUpdateError(topic, msg, btnStr, type);
}
}
/**
* 正在下载
*
* @param totalSize
* @param downSize
*/
private void fireOnDataUpdating(int downFileSize, int downSize) {
List<CheckVersionObserver> tmpList = getObservers();
for (CheckVersionObserver observer : tmpList) {
observer.onDataUpdating(downFileSize, downSize);
}
}
/**
* 下载更新
*/
public void downloadUpdate() {
mDownloadHandler.sendEmptyMessage(DOWNLOAD_UPDATE);
}
/**
* 正在下载更新
*
* @param totalSize
* @param downSize
*/
public void downloadUpdating(int totalSize, int downSize) {
mDownFileSize = totalSize;
mDownSize = downSize;
mDownloadHandler.sendEmptyMessage(DOWNLOAD_UPDATING);
}
/**
* 下载失败
*/
public void downloadError() {
mDownloadHandler.sendEmptyMessage(DOWNLOAD_ERROR);
}
/***
* 选择是否更新版本
*/
public void checkVersion(int serverVerCode, String promt, String versionName, String url) {
Log.i("ciyunupdate", serverVerCode + "");
System.out.println("serverVerCode" + serverVerCode);
int appVerCode = 1;
try {
appVerCode = mContext.getPackageManager().getPackageInfo(
mContext.getPackageName(), 0).versionCode;
Log.i("ciyunupdate", appVerCode + "");
System.out.println("appVerCode" + appVerCode);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
if (serverVerCode > appVerCode) {
if (!FileUtil.isSdCardExist()) {
/*
* showDialog(mContext.getString(R.string.str_version_update),
* mContext.getResources().getString(R.string.no_sdcard),
* mContext.getResources().getString(R.string.sure), 0);
*/
fireCheckVerCanNotUpdate();
} else {
// popUpdateDlg(promt,versionName);
downloadUrl = url;
fireCheckVerCanUpdate(promt, versionName);
}
}
}
/**
*
* @Description:下载更新处理器
* @author:
* @see:
* @since:
* @copyright © ciyun.cn
* @Date:2014年8月12日
*/
private class DownloadHandler extends Handler {
/**
* {@inheritDoc}
*
* @see android.os.Handler#handleMessage(android.os.Message)
*/
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case DOWNLOAD_UPDATE: {
new Thread() {
@Override
public void run() {
super.run();
if (Utils.isExternalStorageRemovable()) {
FileUtil.createFileEx(HealthApplication.UPDATAFILENAME);
HttpPostEngine service = new HttpPostEngine();
service.downloadUpdateFile(
CheckNewVersionLogic.this,
downloadUrl,
FileUtil.updateFile.getPath());
}
}
}.start();
}
break;
case DOWNLOAD_UPDATING:
fireOnDataUpdating(mDownFileSize, mDownSize);
break;
case DOWNLOAD_ERROR:
fireOnError(
mContext.getString(R.string.str_version_update),
mContext.getString(R.string.str_download_err),
mContext.getResources().getString(R.string.sure), 0);
break;
}
}
}
@Override
public void OnError(int code, String err) {
// TODO Auto-generated method stub
Log.v("update", code + "/" + err);
if (mDialog != null && mDialog.isShowing()) {
mDialog.dismiss();
}
mDownloadHandler.sendEmptyMessage(DOWNLOAD_ERROR);
}
@Override
public void OnDataUpdated(int totalSize, int downSize) {
// TODO Auto-generated method stub
mDownFileSize = totalSize;
mDownSize = downSize;
mDownloadHandler.sendEmptyMessage(DOWNLOAD_UPDATING);
}
@Override
public void OnUpdatedFinish() {
// TODO Auto-generated method stub
Uri uri = Uri.fromFile(FileUtil.updateFile);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "application/vnd.android.package-archive");
mActivity.startActivity(intent);
}
}
第三步:在主界面按钮事件里面写如下代码:
- CheckNewVersionLogic checkNewVersionLogic = new CheckNewVersionLogic(AboutAppActivity.this);
- checkNewVersionLogic.CheckNewVersion(verCode + "");
CheckNewVersionLogic checkNewVersionLogic = new CheckNewVersionLogic(AboutAppActivity.this);
checkNewVersionLogic.CheckNewVersion(verCode + "");
第四步:主界面类要实现CheckVersionObserver,并实现如下方法:
- void showDialog(String topic, String msg, String btnStr, final int type) {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setIcon(android.R.drawable.ic_dialog_info);
- builder.setTitle(topic);
- builder.setMessage(msg);
- builder.setNegativeButton(btnStr,
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- dialog.dismiss();
- if (type == 1) {
- AboutAppActivity.this.finish();
- } else {
- }
- }
- });
- builder.setCancelable(false);
- builder.create().show();
- }
- private void popUpdatingDlg(long totalSize) {
- if (mDialog == null) {
- mDialog = new ProgressDialog(this);
- mDialog.setMax(100);
- String size = (totalSize*0.000001 + "").substring(0, 4);
- mDialog.setTitle(getResources().getString(R.string.now_loading_new_version)+size+"M)");
- mDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
- mDialog.setCanceledOnTouchOutside(false);
- mDialog.setOnKeyListener(new OnKeyListener() {
- @Override
- public boolean onKey(DialogInterface dialog, int keyCode,
- KeyEvent event) {
- if ((keyCode == KeyEvent.KEYCODE_SEARCH)
- || (keyCode == KeyEvent.KEYCODE_BACK)) {
- return true;
- }
- return false;
- }
- });
- mDialog.setCancelable(false);
- mDialog.show();
- }
- }
- @Override
- public void onCheckVerCanUpdate(String promt, String versionName) {
- // TODO Auto-generated method stub
- popUpdateDlg(promt,versionName);
- }
- @Override
- public void onCheckVerCanNotUpdate() {
- // TODO Auto-generated method stub
- showDialog(getString(R.string.str_version_update),
- getResources().getString(R.string.no_sdcard), getResources().getString(R.string.sure), 0);
- }
- @Override
- public void onUpdateError(String topic, String msg, String btnStr, int type) {
- // TODO Auto-generated method stub
- showDialog(topic,msg, btnStr, type);
- }
- @Override
- public void onDataUpdating(int totalSize, int downSize) {
- // TODO Auto-generated method stub
- popUpdatingDlg(totalSize);
- if (mDialog != null && mDialog.isShowing()) {
- if (downSize < totalSize) {
- mDialog.setProgress(downSize*100/totalSize);
- } else {
- mDialog.dismiss();
- }
- }
- }
- @Override
- public void onCheckNewVerFail(int errorCode, String msg) {
- // TODO Auto-generated method stub
- haloToast.dismissWaitDialog();//关闭提示框
- if(!TextUtils.isEmpty(msg))
- Toast.makeText(this, msg, 3000).show() ;
- if(errorCode == 200){
- Intent intent = new Intent(AboutAppActivity.this,LoginActivity.class) ;
- startActivity(intent);
- }
- if(TextUtils.isEmpty(msg)){
- Toast.makeText(this, R.string.str_network_error_msg, 3000).show();
- }
- }
- @Override
- public void onCheckNewVerSucc(CheckUpdataEntity newEntity) {
- // TODO Auto-generated method stub
- haloToast.dismissWaitDialog();
- if (newEntity.getRetcode() == 0) {
- HealthApplication.mUserCache.setToken(newEntity.getToken());
- if (newEntity.getData()!=null) {
- int serverVerCode = newEntity.getData().getVercode();
- String prompt = newEntity.getData().getMessage();
- String verName = newEntity.getData().getVername();
- checkNewVersionLogic.checkVersion(serverVerCode, prompt, verName, newEntity.getData().getAppurl());
- }
- }
- }
- @Override
- public void onCheckNewVerSuccInMain(MainEntity mainEntity) {
- // TODO Auto-generated method stub
- }
void showDialog(String topic, String msg, String btnStr, final int type) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(android.R.drawable.ic_dialog_info);
builder.setTitle(topic);
builder.setMessage(msg);
builder.setNegativeButton(btnStr,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
if (type == 1) {
AboutAppActivity.this.finish();
} else {
}
}
});
builder.setCancelable(false);
builder.create().show();
}
private void popUpdatingDlg(long totalSize) {
if (mDialog == null) {
mDialog = new ProgressDialog(this);
mDialog.setMax(100);
String size = (totalSize*0.000001 + "").substring(0, 4);
mDialog.setTitle(getResources().getString(R.string.now_loading_new_version)+size+"M)");
mDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
mDialog.setCanceledOnTouchOutside(false);
mDialog.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode,
KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_SEARCH)
|| (keyCode == KeyEvent.KEYCODE_BACK)) {
return true;
}
return false;
}
});
mDialog.setCancelable(false);
mDialog.show();
}
}
@Override
public void onCheckVerCanUpdate(String promt, String versionName) {
// TODO Auto-generated method stub
popUpdateDlg(promt,versionName);
}
@Override
public void onCheckVerCanNotUpdate() {
// TODO Auto-generated method stub
showDialog(getString(R.string.str_version_update),
getResources().getString(R.string.no_sdcard), getResources().getString(R.string.sure), 0);
}
@Override
public void onUpdateError(String topic, String msg, String btnStr, int type) {
// TODO Auto-generated method stub
showDialog(topic,msg, btnStr, type);
}
@Override
public void onDataUpdating(int totalSize, int downSize) {
// TODO Auto-generated method stub
popUpdatingDlg(totalSize);
if (mDialog != null && mDialog.isShowing()) {
if (downSize < totalSize) {
mDialog.setProgress(downSize*100/totalSize);
} else {
mDialog.dismiss();
}
}
}
@Override
public void onCheckNewVerFail(int errorCode, String msg) {
// TODO Auto-generated method stub
haloToast.dismissWaitDialog();//关闭提示框
if(!TextUtils.isEmpty(msg))
Toast.makeText(this, msg, 3000).show() ;
if(errorCode == 200){
Intent intent = new Intent(AboutAppActivity.this,LoginActivity.class) ;
startActivity(intent);
}
if(TextUtils.isEmpty(msg)){
Toast.makeText(this, R.string.str_network_error_msg, 3000).show();
}
}
@Override
public void onCheckNewVerSucc(CheckUpdataEntity newEntity) {
// TODO Auto-generated method stub
haloToast.dismissWaitDialog();
if (newEntity.getRetcode() == 0) {
HealthApplication.mUserCache.setToken(newEntity.getToken());
if (newEntity.getData()!=null) {
int serverVerCode = newEntity.getData().getVercode();
String prompt = newEntity.getData().getMessage();
String verName = newEntity.getData().getVername();
checkNewVersionLogic.checkVersion(serverVerCode, prompt, verName, newEntity.getData().getAppurl());
}
}
}
@Override
public void onCheckNewVerSuccInMain(MainEntity mainEntity) {
// TODO Auto-generated method stub
}
第五步:用到的一些网络方法:
- /**
- * 检测系统版本升级
- * @param vercode
- * @return
- */
- public CheckUpdataEntity checkVersion(String vercode){
- JSONObject j = HttpJsonRequesProxy.getInstance().getCheckVerReques(vercode);
- String jsonData=null;
- try {
- jsonData = httpUtil.sendDataToServer(LoveHealthConstant.HOSTURL, j.toString());
- } catch (Exception e) {
- e.printStackTrace();
- }
- if(jsonData==null){
- return null;
- }
- return JsonUtil.parse(jsonData, CheckUpdataEntity.class);
- }
- /**
- * 主界面检测系统版本是否升级
- * @param token
- * @param firstopen
- * @param mobiletype
- * @param mobilesys
- * @param vercode
- * @return
- */
- public MainEntity checkVerInMain(int firstopen,
- String mobiletype, String mobilesys, String vercode) {
- JSONObject j = HttpJsonRequesProxy.getInstance().getHomePageReques(firstopen, mobiletype, mobilesys, vercode);
- String jsonData=null;
- try {
- jsonData = httpUtil.sendDataToServer(LoveHealthConstant.HOSTURL, j.toString());
- } catch (Exception e) {
- e.printStackTrace();
- }
- if(jsonData==null){
- return null;
- }
- return JsonUtil.parse(jsonData, MainEntity.class);
- }
/**
* 检测系统版本升级
* @param vercode
* @return
*/
public CheckUpdataEntity checkVersion(String vercode){
JSONObject j = HttpJsonRequesProxy.getInstance().getCheckVerReques(vercode);
String jsonData=null;
try {
jsonData = httpUtil.sendDataToServer(LoveHealthConstant.HOSTURL, j.toString());
} catch (Exception e) {
e.printStackTrace();
}
if(jsonData==null){
return null;
}
return JsonUtil.parse(jsonData, CheckUpdataEntity.class);
}
/**
* 主界面检测系统版本是否升级
* @param token
* @param firstopen
* @param mobiletype
* @param mobilesys
* @param vercode
* @return
*/
public MainEntity checkVerInMain(int firstopen,
String mobiletype, String mobilesys, String vercode) {
JSONObject j = HttpJsonRequesProxy.getInstance().getHomePageReques(firstopen, mobiletype, mobilesys, vercode);
String jsonData=null;
try {
jsonData = httpUtil.sendDataToServer(LoveHealthConstant.HOSTURL, j.toString());
} catch (Exception e) {
e.printStackTrace();
}
if(jsonData==null){
return null;
}
return JsonUtil.parse(jsonData, MainEntity.class);
}
- /**
- * 版本更新
- *
- * @param token
- * @param vercode
- * @return
- */
- public JSONObject getCheckVerReques(String vercode) {
- JSONObject title = getContextJsonObj("CheckUp");
- try {
- // 另外一个Json对象需要新建
- JSONObject mQrInfo = new JSONObject();
- mQrInfo.put("vercode", vercode);
- // 将用户和码值添加到整个Json中
- title.put("data", mQrInfo);
- } catch (JSONException e) {
- // 键为null或使用json不支持的数字格式(NaN, infinities)
- throw new RuntimeException(e);
- }
- return title;
- }
/**
* 版本更新
*
* @param token
* @param vercode
* @return
*/
public JSONObject getCheckVerReques(String vercode) {
JSONObject title = getContextJsonObj("CheckUp");
try {
// 另外一个Json对象需要新建
JSONObject mQrInfo = new JSONObject();
mQrInfo.put("vercode", vercode);
// 将用户和码值添加到整个Json中
title.put("data", mQrInfo);
} catch (JSONException e) {
// 键为null或使用json不支持的数字格式(NaN, infinities)
throw new RuntimeException(e);
}
return title;
}
- /**
- * 主页
- *
- * @param token
- * @param firstopen
- * @param mobiletype
- * @param mobilesys
- * @param vercode
- * @return
- */
- public JSONObject getHomePageReques(int firstopen,
- String mobiletype, String mobilesys, String vercode) {
- JSONObject title = getContextJsonObj("HomePage");
- try {
- // 另外一个Json对象需要新建
- JSONObject mQrInfo = new JSONObject();
- mQrInfo.put("firstopen", firstopen);
- mQrInfo.put("mobiletype", mobiletype);
- mQrInfo.put("mobilesys", mobilesys);
- mQrInfo.put("vercode", vercode);
- // 将用户和码值添加到整个Json中
- title.put("data", mQrInfo);
- } catch (JSONException e) {
- // 键为null或使用json不支持的数字格式(NaN, infinities)
- throw new RuntimeException(e);
- }
- return title;
- }
/**
* 主页
*
* @param token
* @param firstopen
* @param mobiletype
* @param mobilesys
* @param vercode
* @return
*/
public JSONObject getHomePageReques(int firstopen,
String mobiletype, String mobilesys, String vercode) {
JSONObject title = getContextJsonObj("HomePage");
try {
// 另外一个Json对象需要新建
JSONObject mQrInfo = new JSONObject();
mQrInfo.put("firstopen", firstopen);
mQrInfo.put("mobiletype", mobiletype);
mQrInfo.put("mobilesys", mobilesys);
mQrInfo.put("vercode", vercode);
// 将用户和码值添加到整个Json中
title.put("data", mQrInfo);
} catch (JSONException e) {
// 键为null或使用json不支持的数字格式(NaN, infinities)
throw new RuntimeException(e);
}
return title;
}
- public String sendDataToServer(String url, String body) throws Exception {
- HttpPost httpPost = new HttpPost(url);
- ByteArrayEntity postdata = new ByteArrayEntity(body.getBytes());
- httpPost.setEntity(postdata);
- int res = 0;
- HttpParams httpParameters = new BasicHttpParams();
- HttpConnectionParams.setConnectionTimeout(httpParameters, TIME_OUT);
- HttpConnectionParams.setSoTimeout(httpParameters, TIME_OUT);
- DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
- HttpResponse httpResponse = httpClient.execute(httpPost);
- res = httpResponse.getStatusLine().getStatusCode();
- if (res == 200) {
- String result = EntityUtils.toString(httpResponse.getEntity());
- XLog.d("result==", result);
- return result;
- }
- return null;
- }


3183

被折叠的 条评论
为什么被折叠?



