标签:out-of-memory httpclient android
在我的应用程序中,我每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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。