我正在制作一个 Android 应用程序,我需要制作一个 JSONObjectRequest 以从github 存储库中的 a获取参数 ( logo
) 。package.json
这是我发出 JSON 请求的方法
public void askLogoPath(String url) {
JsonObjectRequest req = new JsonObjectRequest(url,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
if (response.has("logo"))
Global.getInstance().setLogo(response.getString("logo"));
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
// Adding request to request queue
QueueController.getInstance().addToRequestQueue(req);
}
我logo
在类中定义了一个遵循单例模式的变量 ( ) Global
,因此我可以在程序中的任何地方访问它。发出此请求后,我想设置一个值为 logo 的变量。
这是我调用前一个函数的一段代码。
if (full_name != null) {
String url = "https://raw.githubusercontent.com/" + full_name + "/master/";
this.askLogoPath(url + "package.json");
this.setLogoPath(Global.getInstance().getLogo());
}
我注意到该onResponse
部分是最后一个要执行的部分,所以当我做的时候setLogoPath(Global.getInstance.getLogo())
logo 仍然是空的,所以我不能logoPath
在上一行中设置。我想等到它被执行,所以它不会为空。
有什么办法让它同步,所以我可以做到这一点?
非常感谢你