以下は、getSelf() を呼び出してユーザー オブジェクトを取得しようとしているメソッドです。問題は、結果を返す時点で Volley リクエストが終了していないため、結果が常に null になることです。私は非同期プロセスに少し慣れていないので、API 呼び出しの結果が UserBean オブジェクトを返すのをメソッドに待機させる最善の方法がわかりません。誰か助けてくれませんか?
public UserBean getSelf(String url){
RpcJSONObject jsonRequest = new RpcJSONObject("getSelf", new JSONArray());
JsonObjectRequest userRequest = new JsonObjectRequest(Request.Method.POST, url, jsonRequest,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
String result;
try {
result = response.getString("result");
Gson gson = new Gson();
java.lang.reflect.Type listType = new TypeToken<UserBean>() {}.getType();
//HOW DO I RETURN THIS VALUE VIA THE PARENT METHOD??
userBean = (UserBean) gson.fromJson(result, listType);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Error:", error.toString());
finish();
}
}
);
this.queue.add(userRequest);
return userBean;
}