SDK代碼如下,有個介面,里面有多個callback, 各個callback為了直觀,要這樣定義。那我外層APP呼叫時,如何只要呼叫函式對應的介面就可以,不要也要這么多個callback. 就比如呼叫重啟,只要有 @Override
public void onIpcReboot(int error_code) {
}
,其它的不要,這有辦法做到嗎?
/**
* 重啟IPC
*
* @param ipc 要重啟的IPC
* @param callBack 成功回傳true和“OK”,失敗回傳false和失敗的原因
*/
public static void setReboot(IPC ipc, final IPCCallBack callBack){
Device findDevice = null;
for(Device device: mDeviceList){
if (device.getIpAddress().equals(ipc.getIp())) {
findDevice = device;
break;
}
}
SystemRebootThread systemRebootThread = new SystemRebootThread(findDevice, mContext, new SystemRebootThread.SystemRebootCallBack() {
@Override
public void onRebootResult(boolean isSuccess, Device device, String result) {
MyLog.e(TAG, result);
if(isSuccess) {
callBack.onIpcReboot(0);
}
else{
callBack.onIpcReboot(1);
}
}
});
systemRebootThread.start();
}
public static String error_to_string(int error_code){
return null;
}
public interface IPCCallBack {
/**
* 搜索IPC的CallBack
*
* @param error_code 成功回傳0,失敗回傳error_code
* @param ipc_list 回傳檢測到的IPC
*/
void onIpcSearchResult(int error_code, List<IPC> ipc_list);
/**
* IPC拍照的CallBack
*
* @param error_code 成功回傳0,失敗回傳error_code
* @param abs_path 回傳照片的絕對路徑
*/
void onIpcSnapshot(int error_code, String abs_path);
/**
*設定IPC的時間
*
* @param error_code 成功回傳0,失敗回傳error_code
*/
void onIpcSetTime(int error_code);
/**
*設定IPC的IP地址
*
* @param error_code 成功回傳0,失敗回傳error_code
*/
void onIpcSetIP(int error_code);
/**
* 重啟IPC
*
* @param error_code 成功回傳0,失敗回傳error_code
*/
void onIpcReboot(int error_code);
/**
*
* @param error_code 成功回傳0,失敗回傳error_code
*/
void onIpcSetImage(int error_code);
/**
*設定IPC的視頻編碼
*
* @param error_code 成功回傳0,失敗回傳error_code
*/
void onIpcSetVideoEncoder(int error_code);
/**
*設定IPC的OSD
*
* @param error_code 成功回傳0,失敗回傳error_code
*/
void onIpcSetOsd(int error_code);
}
IpcSDK.setReboot(m_IPC, new IpcSDK.IPCCallBack() {
@Override
public void onIpcSearchResult(int error_code, List<IPC> ipc_list) {
}
@Override
public void onIpcSnapshot(int error_code, String abs_path) {
}
@Override
public void onIpcSetTime(int error_code) {
}
@Override
public void onIpcSetIP(int error_code) {
}
@Override
public void onIpcReboot(int error_code) {
}
@Override
public void onIpcSetImage(int error_code) {
}
@Override
public void onIpcSetVideoEncoder(int error_code) {
}
@Override
public void onIpcSetOsd(int error_code) {
}
});
uj5u.com熱心網友回復:
寫個抽象類比如AbstractIpcRebootCallback,實作onlpcReboot以外的介面方法(方法里啥也不做),只保留onlpcReboot介面不實作(抽象方法),外層app呼叫時,引數傳入這個抽象類的實體即可轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/278678.html
標籤:Java相關
上一篇:用java寫了一個小游戲,但是出來的卻是一個靜止界面
下一篇:springUtils
