【问题标题】:How to smoothly handle a json array with 200k rows using volly如何使用 volley 平滑处理 200k 行的 json 数组
【发布时间】:2017-02-04 10:12:37
【问题描述】:

我有一个url,它有一个包含大量数据的 json 数组。 我像这样用 volly 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中显示响应,但它的过程非常漫长,当互联网连接关闭并从凌空缓存中提取时也是如此。如何在我的应用中处理 URL?

【问题讨论】:

  • 使用分页
  • 其实我是一个新的android开发者如何在android中使用分页

标签: android json android-volley large-files


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多