JsonObjectRequest 同步?
JsonObjectRequest Synchronisation?
我必须向 API 发出多个 Android 应用请求,但我遇到了以下问题:
我有一个项目列表,我必须为每个项目提出请求才能获取一些数据并将其显示在应用程序中。当我的列表大小为 1 时(如果我只有一个项目),该应用程序可以完美运行,但如果我有更多,我会混合数据并且一个项目具有其他项目的价值等等。
我正在使用 JsonObjectRequest 和 Volley。我使用回调接口将请求数据发送回活动。我认为这可能是一个同步问题,但我不确定而且我有点沮丧。我什么都试过了!
请求代码:
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, urlMarket, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONObject singleResult;
singleResult = response.getJSONArray("result").getJSONObject(0);
coin.setHigh(singleResult.getDouble("High"));
coin.setLow(singleResult.getDouble("Low"));
coin.setLast(singleResult.getDouble("Last"));
coin.setVolInBtc(singleResult.getDouble("BaseVolume"));
coin.setBid(singleResult.getDouble("Bid"));
coin.setAsk(singleResult.getDouble("Ask"));
coin.setPrevDay(singleResult.getString("PrevDay"));
callback.onSuccess(coin);
} catch (Exception e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
requestQueue.add(request);
如有任何帮助,我们将不胜感激!
PD.: 如果有比 JsonObjectRequest 更好的方法,请告诉我!
考虑以下两个选项之一:
扩展接受作为 Success/Error 回调的一部分返回的 id/token 字段的 JSONObjectRequest。
在进行 API 调用之前使用最终字段作为标识符。假设您在循环中进行这些调用,然后您可以从匿名回调中引用这个最终字段来识别特定的股票。例如,您可以使用 ISIN、数据库 ID 或股票代码来标识响应。
我必须向 API 发出多个 Android 应用请求,但我遇到了以下问题: 我有一个项目列表,我必须为每个项目提出请求才能获取一些数据并将其显示在应用程序中。当我的列表大小为 1 时(如果我只有一个项目),该应用程序可以完美运行,但如果我有更多,我会混合数据并且一个项目具有其他项目的价值等等。
我正在使用 JsonObjectRequest 和 Volley。我使用回调接口将请求数据发送回活动。我认为这可能是一个同步问题,但我不确定而且我有点沮丧。我什么都试过了!
请求代码:
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, urlMarket, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { try { JSONObject singleResult; singleResult = response.getJSONArray("result").getJSONObject(0); coin.setHigh(singleResult.getDouble("High")); coin.setLow(singleResult.getDouble("Low")); coin.setLast(singleResult.getDouble("Last")); coin.setVolInBtc(singleResult.getDouble("BaseVolume")); coin.setBid(singleResult.getDouble("Bid")); coin.setAsk(singleResult.getDouble("Ask")); coin.setPrevDay(singleResult.getString("PrevDay")); callback.onSuccess(coin); } catch (Exception e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { error.printStackTrace(); } }); requestQueue.add(request);
如有任何帮助,我们将不胜感激!
PD.: 如果有比 JsonObjectRequest 更好的方法,请告诉我!
考虑以下两个选项之一:
扩展接受作为 Success/Error 回调的一部分返回的 id/token 字段的 JSONObjectRequest。
在进行 API 调用之前使用最终字段作为标识符。假设您在循环中进行这些调用,然后您可以从匿名回调中引用这个最终字段来识别特定的股票。例如,您可以使用 ISIN、数据库 ID 或股票代码来标识响应。