android-GC_并发释放

android-GC_并发释放,android,input,garbage-collection,buffer,Android,Input,Garbage Collection,Buffer,我正在开发一个android应用程序,它通过rum时间从服务器获取数据,打开一个常规套接字,将请求发送到服务器,并通过常规的InputStreamReader接收服务器响应: Reader input = new InputStreamReader(socket.getInputStream()); String server_response = null; char responseLine ; while (something) { responseLine

我正在开发一个android应用程序,它通过rum时间从服务器获取数据,打开一个常规套接字,将请求发送到服务器,并通过常规的
InputStreamReader
接收服务器响应:

 Reader input = new InputStreamReader(socket.getInputStream());
 String server_response = null;
 char responseLine ;
 while (something) {
            responseLine = (char)input.read();
            server_response = server_response + responseLine;
            // some work 
   }
   return server_response;
我发送了4服务器请求,我收到了前两个相应的响应,而没有收到其他两个响应,相反,我收到了一些单个字符作为响应,然后收到了成吨的垃圾收集器行:

02-17 10:26:08.599: DEBUG/dalvikvm(595): GC_CONCURRENT freed 98K, 77% free 477K/2048K, paused 1ms+1ms
02-17 10:26:09.878: DEBUG/dalvikvm(605): GC_CONCURRENT freed 154K, 4% free 7178K/7431K, paused 18ms+8ms
02-17 10:26:10.238: DEBUG/dalvikvm(605): GC_FOR_ALLOC freed 84K, 3% free 7361K/7559K, paused 64ms
(值得一提的是,服务器响应非常大)

因此,我试图改变我接收回复的方式:

input = new InputStreamReader(new BufferedInputStream(
                      socket.getInputStream(), 65000));
但这给了我同样的结果。我能做些什么来克服这个问题

p.s.1)我不能使用
BufferedReader
,因为服务器没有以行的形式向我发送响应。

2)当我绕过前两个响应时,它通常会收到第三个响应。