刚到公司时,经理告诉我的一个概念,觉得挺难的,那时候手里又有项目,时间紧,匆匆找了点网上的例子看,也不是很明白。今天抽出时间来好好看了下。
个人认为:
/**
*实现一个接口回调需要4部,分为内外两部分 1--3位内部 4外部:
*1.定义一个接口interface CallBack{
void function1
void function2
}
*2.定义一个实现方法,方法中的参数包括定义的接口
* exampleCallBack(CallBack callBack)
*3.指定接口中的方法触发的位置
* callBack.function
*4.触发后具体执行什么操作 在外部定义
*/
public interface MyCallBack {
public void onError(String result);
public void onSuccess(String message);
}
服务端代码 提供一个供客户端调用的代码,方法中需要有接口类型参数
/**
* 工具类 实现用户的请求
*/
public class ResultUtils {
/**
* @param message 用户指定的服务类型
* @param callBack 回调给用户的结果
*/
public void executeMessage(String message, MyCallBack callBack) {
Log.e("tag", "------->执行用户指定的服务");
for (int i=0;i<10000;i++){
//模拟提供服务的过程
}
//完成
String result="您要的服务是"+message+"已经送过去了";
//通过回调将参数传递过去
callBack.onSuccess(result);
}
}
客户端代码,需要持有服务端代码的引用
/**
* 使用工具类
*/
public class Customer {
//持有工具类的引用
ResultUtils resultUtils;
public void needService(){
String service="need some coffee";
resultUtils.executeMessage(service, new MyCallBack() {
@Override
public void onError(String result) {
}
@Override
public void onSuccess(String message) {
Log.e("tag","我点的东西呢:"+message);
}
});
}
}