title: 回調callback
參考:
JAVA回調機制(CallBack)詳解
一個經典例子讓你徹徹底底理解java回調機制
1.新建一個類,聲明接口:
public interface GetCodeCallback {
void GetCodeCallback(String result);
}
2.實現(xiàn)接口
public abstract class AbstractBlocklyActivity extends AppCompatActivity implements GetCodeCallback{
@Override
public void GetCodeCallback(String result) {
System.out.println("返回來的草泥馬--->" + result);
}
在oncreate 中使用
LoggingCodeGeneratorCallback lc = new LoggingCodeGeneratorCallback(this,"我也不知道");
lc.executeMessage(this);
public class LoggingCodeGeneratorCallback implements CodeGenerationRequest.CodeGeneratorCallback {
private static GetCodeCallback callbackd; //使用靜態(tài),不然會是空指針異常。
protected final String mTag;
protected final Context mContext;
public LoggingCodeGeneratorCallback(Context context, String loggingTag) {
mTag = loggingTag;
mContext = context;
}
public void executeMessage(GetCodeCallback callBack) {
System.out.println("小王問的問題--->");
this.callbackd = callBack;
}
@Override
public void onFinishCodeGeneration(String generatedCode) {
// Sample callback.
if (generatedCode.isEmpty()) {
Toast.makeText(mContext,
"Something went wrong with code generation.", Toast.LENGTH_LONG)
.show();
} else {
Log.d(mTag, "code: " + generatedCode);
// Toast.makeText(mContext, generatedCode, Toast.LENGTH_LONG).show();
callbackd.GetCodeCallback(generatedCode);
}
}
}