我正在開發一個發送大量http請求(HttpURLConnection)的androi應用程序。一切正常,但我認爲我的對象沒有被釋放。我說,因爲當我看MAT(Eclipse Memory Analyzer)時,它說我保留了很多字節[]。我查看MAT上的字節,它們是我在HttpURLConnection方法中收到的字節。以下是我發送http請求的代碼。還有什麼我可以做的發佈我的對象?如何釋放HttpURLConnection字節?
public static String sendHTTPRequest(String requestURL, int timeout) {
HttpURLConnection httpconn = null;
try {
URI uri = new URI(getUTF8Request(requestURL));
httpconn = (HttpURLConnection) uri.toURL().openConnection();
httpconn.setConnectTimeout(timeout);
StringBuilder responseStringBuilder = new StringBuilder();
if (httpconn.getResponseCode() == HttpURLConnection.HTTP_OK) {
BufferedReader input = new BufferedReader(
new InputStreamReader(httpconn.getInputStream(),
"ISO-8859-1"), 8192);
String strLine = null;
while ((strLine = input.readLine()) != null) {
responseStringBuilder.append(strLine);
}
input.close();
strLine = null;
input = null;
}
return responseStringBuilder.toString();
} catch (URISyntaxException e) {
httpconn = null;
return "Failed to request";
} catch (IOException e) {
httpconn = null;
return "Failed to request";
} finally {
requestURL = null;
if (httpconn != null) {
httpconn.disconnect();
httpconn = null;
}
}
}
我很害怕,因爲內存的使用增加了而且從來沒有減少過,但是我沒有任何外掛。你認爲當它接近outofmemory時,垃圾收集將取消分配這個字節[]? – user2494863
是的,垃圾收集器的功能就是爲您管理內存。 –