我想做的是当onSuccess
方法执行后,queryLogin
return true
,而如果onFailuer
方法执行后,queryLogin
return false
;
但如您所知,在 java 中,我无法从内部类修改外部类值。所以我只是想知道如何解决问题并实现我的目标。
public static boolean queryLogin(String username, String passowrd){
boolean isSuccess = false;
params.put("username", username);
params.put("password", passowrd);
VStarRestClient.post(LOGIN_URL, params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
isSuccess = true;//cannot
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
String responseContent = new String(responseBody);
isSuccess = false;//cannot
}
});
return isSuccess;
}
您试图在这里混合同步和异步行为,这是行不通的。
The post()
方法只会触发 HTTP post,并且登录方法的执行会继续到结束,而无需等待该 post 的结果。这就是AsyncHttpResponseHandler
来这里是为了。当回复时调用post()
到达。
网络活动(以及可能需要很长时间的所有其他任务)始终是异步的,以免冻结应用程序的 UI。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)