彼此之后有多个Volley请求?

时间:2017-03-22 12:09:43

标签: android android-asynctask request android-volley

我正在制作一个需要通过HTTP请求获取JSON数据的Android应用程序。要检索的数据可能非常大(100-500mb)。后端是在RESTER(https://github.com/moddity/Rester

中编写的REST api

所以问题是:我一次只能获得10.000个JSON对象(大约10兆字节)。我希望如果可能的话,请求10.000个对象,如果有更多数据需要检索,则请求下一个10.000个对象,依此类推。

现在我正在使用Volley和JSONArrayRequest

private void requestMeasurement(int id, int limit, int offset) {
    RequestQueue requestQueue = Volley.newRequestQueue(context);

    String url = "http://10.201.201.10:888/index.php/ser" + id + "?limit=" + limit + "&offset=" + offsett;
    JsonArrayRequest jsObjectRequest = new JsonArrayRequest(url, new Response.Listener<JSONArray>() {
        @Override
        public void onResponse(JSONArray response) {

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    });
    requestQueue.add(jsObjectRequest);
}

希望有人可以提供帮助。抱歉任何糟糕的英语:)

更新:试图在onResponse()中再次呼叫请求:

private void requestMeasurement(final int id, final int limit, final int offset) {
    requestQueue = Volley.newRequestQueue(context);
    String url = "http://10.201.201.10:888/index.php/ser" + id + "?limit=" + limit;
    JsonArrayRequest jsObjectRequest = new JsonArrayRequest(url, new Response.Listener<JSONArray>() {
        @Override
        public void onResponse(JSONArray response) {
            if (response.length() >= limit) {

                requestMeasurement(id, limit, offset+limit);
            } else {
                Log.i("Completed = ", "true");
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    });
    requestQueue.add(jsObjectRequest);
}

由于内存不足导致崩溃,我不知道为什么......

0 个答案:

没有答案