Ваша проблема, вероятно, не связана с утечкой памяти.Хотя ваш подход к чтению потока неэффективен, как упомянуто Хольгером , он также не является вашей главной проблемой.
Попробуйте добавить следующую строку в качестве первой строки в вашем onCreate:
System.setProperty("http.keepAlive", "false");
То, что происходило, состояло в том, что без установки этого свойства ваше соединение поддерживалось в ожидании большего числа запросов и возвращалось только по истечении времени ожидания.Если установить значение false, он вернется сразу после завершения вашего запроса.Чтобы лучше понять эту концепцию, прочитайте этот ответ: Как интерпретировать «Соединение: keep-alive, close»? .
Что касается неэффективного чтения потока, я бы порекомендовал вам изменить вашу реализациюк чему-то похожему на следующий код:
URL url = new URL(params[0]);
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuilder builder = new StringBuilder();
String current;
while ((current = reader.readLine()) != null) {
builder.append(current);
}
line = builder.toString();
reader.close();