内存泄漏循环

时间:2016-02-22 08:47:54

标签: android android-asynctask

我正在使用AsyncTask。有两种方法:doInBackgroundonProgressUpdatedoInBackground有循环,其中下载JsonObj然后onProgressUpdate创建新的用户界面。代码如下:

for (int i = 0; i < tl.getChildCount() ; i++) {
 URL url = new URL(adress);
                    urlConnection = (HttpURLConnection) url.openConnection();
                    urlConnection.setRequestMethod("GET");
                    urlConnection.connect();
 InputStream inputStream;
inputStream = urlConnection.getErrorStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

                    String line;
                    while ((line = reader.readLine()) != null) {
                        buffer.append(line);
                    }

                    resultJson = buffer.toString();
}
dataJsonObj = new JSONObject(resultJson);
                    if(dataJsonObj.has("obj") && !dataJsonObj.isNull("obj")) {
                        JSONObject obj= dataJsonObj.getJSONObject("obj");
                        String some= obj.getString("some");
                         publishProgress(some);                    }
}catch(Exception e){
                e.printStackTrace();
            }
            return resultJson;

当我启动它时,在LogCat中编写下一个(不是每个循环,在循环2-3次之后):

  

GC_CONCURRENT释放350K,11%免费4033K / 4500K,暂停4ms + 0ms,总计   8ms的

在这个循环中publishProgress不起作用,但是下一个循环它再次运行良好。我猜它的内存泄漏(太多&#34;循环中的新对象&#34;),但我不确定。 怎么解决?我希望你理解我的问题。

0 个答案:

没有答案