首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OOM使用截击

OOM使用截击
EN

Stack Overflow用户
提问于 2014-08-20 17:50:06
回答 1查看 272关注 0票数 0
代码语言:javascript
复制
private void load() {
    // TODO Auto-generated method stub
    JsonObjectRequest coinReq = new JsonObjectRequest(url,
            null, new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    hidepDialog();
                    try {

                    jsonarray = response.getJSONArray("coins");
                    // Parsing json
                    for (int i=0; i < jsonarray.length() ;i++) {
                            JSONObject obj = jsonarray.getJSONObject(i);
                            Coin coin= new Coin();
                            coin.setCost(obj.getString("catagory1"));
                            coin.setThumbnailUrl(obj.getString("pict_url"));
                            coin.setLot(obj.getString("minimum_bid"));
                            coin.setDesc(obj.getString("title"));
                            coin_list.add(coin);
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    // notifying list adapter about data changes
                    // so that it renders the list view with updated data
                    adapter.notifyDataSetChanged();
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    hidepDialog();

                }
            });
    AppController.getInstance().addToRequestQueue(coinReq);
}

在解析大型JSON数据时,它会出现内存不足错误。有人能给出一些解决方案来处理大型json数据的内存不足问题吗?

EN

回答 1

Stack Overflow用户

发布于 2014-08-20 20:48:02

试试这个:

代码语言:javascript
复制
 private void load() { 


    RequestQueue queue = Volley.newRequestQueue(getActivity().getApplicationContext());

    String url = "API URL";
    Uri.Builder builder = Uri.parse(url).buildUpon();

    // builder.appendQueryParameter("STATUS", "1); //if you need to pass a param


    Log.d("ENTERED_IN_THE_INFO_BLOCK", builder.toString());

    JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.GET, builder.toString(), null, new Response.Listener<JSONObject>() {

        @Override
        public void onResponse(JSONObject menuObject) {

            Log.d("ENTERED_IN_THE_CART_INFO_BLOCK", "success");
            Log.d("ENTERED_IN_THE_CART_INFO_BLOCK", menuObject.toString());

                hidepDialog(); 

            try {
                //String resultListString = menuObject.getString("result").trim();

                //JSONObject jsonObject = new JSONObject(resultListString);
                //JSONArray jsonArray = jsonObject.getJSONArray("coins");


                JSONArray jsonArray = menuObject.getJSONArray("coins");



                for (int i = 0; i < jsonArray.length(); i++) {

                    JSONObject obj = jsonArray.getJSONObject(i);

                     ArrayList<String> coin = new ArrayList<String>();

                        //Coin coin= new Coin();
                        coin.setCost(obj.getString("catagory1"));
                        coin.setThumbnailUrl(obj.getString("pict_url"));
                        coin.setLot(obj.getString("minimum_bid"));
                        coin.setDesc(obj.getString("title"));
                        coin_list.add(coin);


                }

                Log.d("ENTERED_IN_THE_ORDER_BLOCK_ID - data", coin.toString());


            } catch (Exception ignored) {

                if (getActivity().getApplicationContext() != null) {
                    Toast.makeText(getActivity().getApplicationContext(), "ERROR:: " + ignored.getMessage(), Toast.LENGTH_LONG).show();
                }
            }
        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {

            if (error.getMessage() != null) {
                Log.d("Volley error", error.getMessage());
            }

            error.printStackTrace();

            Log.d("ENTERED_IN_THE_BLOCK", "failed");
            Log.d("ENTERED_IN_THE_BLOCK", "" + error);


        }
    });

    queue.add(jsObjRequest);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25401675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档