Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 截击-DiskBasedCache OutOfMemory异常-数组大小太大 public void parseInfo(字符串genderTxt2,布尔性别){ 最终字符串URL=“URL”+ “?成人=“+isAdult.toString()+”&gender=“+genderTxt2; info_text.setVisibility(View.GONE); listview_progress.setVisibility(View.VISIBLE); 添加(新的JsonObjectRequest(Request.Method.GET,URL,null,new Response.Listener()){ @凌驾 公共void onResponse(JSONObject响应){ 试一试{ 如果(!fPullToRefreshAttacher.isRefreshing()){ name.clear(); } VolleyLog.v(“响应:%n%s”,响应.toString(4)); 适配器。清除(); parseJSON(响应); }捕获(JSONException e){ e、 printStackTrace(); } } },new Response.ErrorListener(){ @凌驾 公共无效onErrorResponse(截击错误){ //e(“Error:,Error.getMessage().toString()); Toast.makeText(acc,“无法加载名称列表!请检查连接”,Toast.LENGTH_LONG.show(); } })); mRequestQueue.start(); }_Android_Android Volley - Fatal编程技术网

Android 截击-DiskBasedCache OutOfMemory异常-数组大小太大 public void parseInfo(字符串genderTxt2,布尔性别){ 最终字符串URL=“URL”+ “?成人=“+isAdult.toString()+”&gender=“+genderTxt2; info_text.setVisibility(View.GONE); listview_progress.setVisibility(View.VISIBLE); 添加(新的JsonObjectRequest(Request.Method.GET,URL,null,new Response.Listener()){ @凌驾 公共void onResponse(JSONObject响应){ 试一试{ 如果(!fPullToRefreshAttacher.isRefreshing()){ name.clear(); } VolleyLog.v(“响应:%n%s”,响应.toString(4)); 适配器。清除(); parseJSON(响应); }捕获(JSONException e){ e、 printStackTrace(); } } },new Response.ErrorListener(){ @凌驾 公共无效onErrorResponse(截击错误){ //e(“Error:,Error.getMessage().toString()); Toast.makeText(acc,“无法加载名称列表!请检查连接”,Toast.LENGTH_LONG.show(); } })); mRequestQueue.start(); }

Android 截击-DiskBasedCache OutOfMemory异常-数组大小太大 public void parseInfo(字符串genderTxt2,布尔性别){ 最终字符串URL=“URL”+ “?成人=“+isAdult.toString()+”&gender=“+genderTxt2; info_text.setVisibility(View.GONE); listview_progress.setVisibility(View.VISIBLE); 添加(新的JsonObjectRequest(Request.Method.GET,URL,null,new Response.Listener()){ @凌驾 公共void onResponse(JSONObject响应){ 试一试{ 如果(!fPullToRefreshAttacher.isRefreshing()){ name.clear(); } VolleyLog.v(“响应:%n%s”,响应.toString(4)); 适配器。清除(); parseJSON(响应); }捕获(JSONException e){ e、 printStackTrace(); } } },new Response.ErrorListener(){ @凌驾 公共无效onErrorResponse(截击错误){ //e(“Error:,Error.getMessage().toString()); Toast.makeText(acc,“无法加载名称列表!请检查连接”,Toast.LENGTH_LONG.show(); } })); mRequestQueue.start(); },android,android-volley,Android,Android Volley,非常简单,在许多设备上都可以获得OutOfMemory异常。有什么想法吗 我以前也遇到过类似的问题。现在的情况是,在解析之前,您将在内存中获取整个JSON对象。你想要做的是使用某种阅读器来流式处理 从文档: 大多数应用程序应该只使用对象模型API。JSON流在以下几种情况下非常有用: 当无法或不希望将整个对象模型加载到内存中时。这在内存有限的移动平台上最为相关 在文档完全可用之前需要阅读或编写文档时 包括堆栈跟踪。抛出OOM异常的确切位置是哪里?字符串/JSON响应是否非常大?每次响应的大小相

非常简单,在许多设备上都可以获得OutOfMemory异常。有什么想法吗


我以前也遇到过类似的问题。现在的情况是,在解析之前,您将在内存中获取整个
JSON
对象。你想要做的是使用某种阅读器来流式处理

从文档:

大多数应用程序应该只使用对象模型API。JSON流在以下几种情况下非常有用:

当无法或不希望将整个对象模型加载到内存中时。这在内存有限的移动平台上最为相关

在文档完全可用之前需要阅读或编写文档时


包括堆栈跟踪。抛出OOM异常的确切位置是哪里?字符串/JSON响应是否非常大?每次响应的大小相同,100项。我现在就发布例外请查看链接above@xBroak很酷的撞车报告服务!无论如何,关于OOM,您能告诉我们响应的大小(例如,在树的深度和字符数方面),还是只显示一个示例?这很奇怪,因为OOM通常是由位图而不是json响应引起的,即使它们非常大……谢谢!HPROF似乎也一直提到位图,但我在启动时没有处理位图,但我的堆几乎满了!我唯一一次使用位图是在一个单独的活动中。这是一个简单的回答,始终有100个条目,每个条目有4个属性,名称、性别、isAdult、Urlet。你知道截击是否支持这一点吗?如何处理?从截取源来看,他们似乎是在按顺序处理
RequestQueue
中的请求,而不是与
PriorityBlockingQueue
并行处理。我通过排队意向服务和使用Gson流媒体实现了同样的目的。从这篇文章()来看,似乎Volley目前不支持流式传输。我能不能使用无止境的加载适配器来限制一次加载的json条目的数量?当然,如果您可以控制json的大小,并使其适合内存,因为这对您来说可能是一个较小的更改。但也要记住,如果JSON在将来变得更大,那么您将回到同样的问题;使用截击,然后使用“jackson”解析JSON,这是一个好的解决方法吗?
  public void parseInfo(String genderTxt2, Boolean gender){
        final String URL = "url" +
                "?adult=" + isAdult.toString() + "&gender=" + genderTxt2;

        info_text.setVisibility(View.GONE);
        listview_progress.setVisibility(View.VISIBLE);
        mRequestQueue.add(new JsonObjectRequest(Request.Method.GET,URL,null,new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                try {

                    if (!fPullToRefreshAttacher.isRefreshing()) {
                        names.clear();
                    }

                    VolleyLog.v("Response:%n %s", response.toString(4));

                    adapter.clear();
                    parseJSON(response);



                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
               // VolleyLog.e("Error: ", error.getMessage().toString());
                Toast.makeText(acc, "Unable to load names list! Please check connection", Toast.LENGTH_LONG).show();
            }
        }));

  mRequestQueue.start();

    }