一、简单调用
1、创建接口
package com.android.vps.upgrade;
public interface IUpgradeStateListener {
// 回调方法
void upgradeFailMsg(String errorInfo);
}
2、调用
//调用
UpdateUtils.getInstance(this, path).requestUpgrate(new IUpgradeStateListener() {
@Override
public void upgradeFailMsg(String errorInfo) {
Log.d(TAG, "IUpgradeStateListener: is error:" + errorInfo);
}
});
//具体实现
public void requestUpgrate(final IUpgradeStateListener resultCb) {
if(resultCb == null){
Log.e(TAG, "requestUpgrate: resultCb is null !");
}else{
mResultCb = resultCb;
}
new Thread(new Runnable(){
@Override
public void run() {
try {
getUpgradeInfo(mUpgradeUrl, UPGRADA_DOWN, resultCb);
} catch (IOException e) {
if(resultCb != null) resultCb.upgradeFailMsg(e.toString());
e.printStackTrace();
}
}
}).start();
}
二、接口和调用之间包一层class
1、接口与上面是一样的
2、中间class
package com.android.vps.upgrade.utils;
import android.content.Context;
import android.util.Log;
import com.android.vps.upgrade.IUpgradeStateListener;
public class UpgradeFailMsg {
private static final String TAG = "UpgradeFailMsg";
private IUpgradeStateListener mUpgradeStateListener = null;
public UpgradeFailMsg(Context context) {
}
public void setOnChangeListener(IUpgradeStateListener upgradeStateListener) {
this.mUpgradeStateListener = upgradeStateListener;
//因为是模拟,所以需要在此将控件状态传出
}
/*
* @升级结果回调函数
* @return false 升级失败 true 升级成功
* */
public void upgradeFailMsg(String errorInfo){
if(mUpgradeStateListener == null) {
Log.e(TAG, "upgradeFailMsg: The callback function is empty!");
return ;
}
Log.e(TAG, "upgradeFailMsg : errorInfo ->" + errorInfo);
mUpgradeStateListener.upgradeFailMsg(errorInfo);
}
}
3、调用
//调用
private UpgradeFailMsg mUpgradeState = null;
mUpgradeState = new UpgradeFailMsg(this);
mUpgradeState.setOnChangeListener(new IUpgradeStateListener() {
@Override
public void upgradeFailMsg(String errorInfo) {
Log.d(TAG, "upgradeFailMsg: is error:" + errorInfo);
}
});
UpdateUtils.getInstance(this, path).requestUpgrate(mUpgradeState);
//具体实现
// 请求升级
public void requestUpgrate(UpgradeFailMsg resultCb) {
if(resultCb == null){
Log.e(TAG, "requestUpgrate: resultCb is null !");
}else{
mResultCb = resultCb;
}
new Thread(new Runnable(){
@Override
public void run() {
try {
getUpgradeInfo(mUpgradeUrl, UPGRADA_DOWN, resultCb);
} catch (IOException e) {
if(resultCb != null) resultCb.upgradeFailMsg(e.toString());
e.printStackTrace();
}
}
}).start();
}
三、优缺
简单调用,简单直接方便,但是不适合管理。
封一层class,之后可以直接再class中处理异常。