如何使用volly平滑处理具有200k行的json数组

时间:2017-02-04 10:12:38

标签: android json android-volley large-files

我的url有一个包含大量数据的json数组。 我像这样用vly jsonArrayRequest调用url

public void makeJsonArrayReq(){
    showProgressDialog();
    JsonArrayRequest req = new JsonArrayRequest(Const.URL_IPD_ADMITED,
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {
                    Log.d("response ================", response.toString());
                    textView.setText(response.toString());
                    hideProgressDialog();
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            VolleyLog.d("Error", "Error: " + error.getMessage());
            textView.setText("Error Occurs ");
            hideProgressDialog();
        }
    });
AppController.getInstance().addToRequestQueue(req, "array");

}

我的设计显示progressDialog一段时间之后它会挂出应用程序然后几分钟后它会在texview中显示响应,但是这个过程非常冗长,当互联网连接断开并从排空缓存中提取时也是如此。如何处理我的应用中的网址?

1 个答案:

答案 0 :(得分:0)

你需要改变你的api以支持分页。有几种可用的分页技术,您必须选择一种适合您的情况。

Android中,您可以保存上次提取的pageNumber(如果这是您的API返回的页面标识符),并且您的api应该在请求中接受此变量(主要通过查询参数)

http://43.255.22.123:3000/android/mis/get/ipdAdmitPatMd?pageId=1

在下一个请求中,它应该将pageId更新为2。

由于问题过于宽泛,因此无法提供精确的代码解决方案,因此我已经解释了这个概念。