其他分享
首页 > 其他分享> > 刷新数据时,Android OutOfMemoryError

刷新数据时,Android OutOfMemoryError

作者:互联网

在我的应用程序中,我每3分钟刷新一次数据.如果应用程序可以工作几个小时,我会出现以下错误:

java.lang.OutOfMemoryError
at org.apache.http.util.CharArrayBuffer.<init>(CharArrayBuffer.java:55)
at org.apache.http.util.EntityUtils.toString(EntityUtils.java:131)
at org.apache.http.util.EntityUtils.toString(EntityUtils.java:146)
at com.tab.Api.friends(Api.java:99)
at com.tab.TabLayout.updateFriends(TabLayout.java:692)
at com.tab.TabLayout.access$25(TabLayout.java:690)
at com.tab.TabLayout$7.run(TabLayout.java:684)
at java.lang.Thread.run(Thread.java:1102)

虽然我的代码在以下位置:“在com.tab.Api.friends(Api.java:99)”处看起来像这样:

    String result = "";
    JSONObject jArray = null;
    JSONArray friends = null;

    DefaultHttpClient client = new DefaultHttpClient();   
    try
    {
        HttpGet getFriends = new HttpGet("http://##########"+fb);
        HttpResponse getResponseFriends = client.execute(getFriends);
        HttpEntity getFriendsEntity = getResponseFriends.getEntity();                      
        if (getFriendsEntity != null) 
            result= EntityUtils.toString(getFriendsEntity);   
        try
        {
            jArray = new JSONObject(result);
        }
        catch(JSONException e)
        {

        }
    }
    catch(Exception e)
    {   
        Log.d("LOADING ERROR","Friends section");
    }

解决方法:

您的某处内存泄漏.在某个地方,您可以保存对寿命长的对象中内存密集型数据的引用.因此,GC无法收集这些数据.您的应用程序运行的时间越长,它将使用更多的内存,直到所有内存用完.然后,您的应用因OutOfMemory异常而被杀死

可能会帮助您的链接:

> About android memory management
> Avoiding memory leaks

标签:out-of-memory,httpclient,android
来源: https://codeday.me/bug/20191202/2085050.html