刷新数据时,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