【发布时间】:2022-01-06 18:42:51
【问题描述】:
总结一下我的问题,我有一个使用 Android Volley Library 编写的请求。
我需要填写 chartDataList 。但是每当我调用该方法时就会出现问题,它会在 3 秒后返回一个空数组,它会异步填充自己。我想等待回复,但我不知道该怎么做?
这是我的代码:
public List<ChartData> getVolleyResponse() {
requestQueue = Volley.newRequestQueue(getApplicationContext());
JsonObjectRequest req = new JsonObjectRequest(
Request.Method.GET,
urlCreator(getCoinName()),
null,
response -> {
try {
JSONArray arr = response.getJSONArray("prices");
ChartData chartData = new ChartData();
for (int i = 0; i < arr.length(); i++) {
JSONArray jsonArray = arr.getJSONArray(i);
chartData.setTimeStamp(timeStampConverter(jsonArray.getString(0)));
chartData.setCost(jsonArray.getDouble(1));
chartDataList.add(chartData);
}
} catch (JSONException e) {
e.printStackTrace();
}
},
error -> {
Toast.makeText(getApplicationContext(), "ERROR", Toast.LENGTH_LONG).show();
});
requestQueue.add(req);
return chartDataList;
}
【问题讨论】:
-
Volley 请求被设计为异步运行。您是否有理由尝试使请求同步,而不是构建您的逻辑以异步工作?
-
@SammyT 我只想知道列表何时全部填满。然后我将创建一个包含填充列表的图表。我想让我的方法在填充时返回列表而不是在它为空时。
标签: java android asynchronous arraylist android-volley