我想检查方法中的AsyncTask的结果。
private boolean isRequestSuccessfull(){
boolean test = false;
new HttpRequest() {
@Override
public void onResponseReceived(JSONObject result) {
if (result.optBoolean("success")){
return true;
} else {
return false;
}
}
}.get(getBaseContext(), "myUrl");
return test;
}
isRequestSuccessfull检查httpRequest的结果是否成功。
HttpRequest是一个调用服务器的AsyncTask,onResponseReceived是允许我获取请求结果的抽象方法。
此代码无效,因为我无法在onResponseReceived中包含返回布尔值。 我无法在onResonseReceived中分配值测试并返回它,因为返回将在分配之前执行。
我该如何解决这个问题?
答案 0 :(得分:0)
而不是从您的方法返回boolean
而不是void
,并让您的匿名HttpRequest
在收到回复时进行方法调用,例如
new HttpRequest() {
@Override
public void onResponseReceived(JSONObject result) {
if (result.optBoolean("success")) {
callMethodWithBoolean(true);
} else {
callMethodWithBoolean(false);
}
}
}.get(getBaseContext(), "myUrl");