调用Web服务时,Android应用中的OutOfMemoryError

| 请帮忙.... 我正在调用一个返回大肥皂对象的Web服务方法,并且得到了
OutOfMemoryException
。 我该如何避免呢?有没有办法做到这一点?
SoapSerializationEnvelope envelope = new    SoapSerializationEnvelope(SoapEnvelope.VER11);           
envelope.dotNet=true;  
envelope.setOutputSoapObject(request);  
try  {     
    httpTransport.call(SOAP_ACTION, envelope);// Here I am getting error 
}   
catch(Exception e){} 
感谢您的帮助。 最好的祝福, 列昂纳多     
已邀请:
        android设备的堆非常小(大约16MB),因此,如果您的SOAP响应返回大量数据,则将所有这些数据读取并将其转换为soap对象可能会使您的设备抛出内存不足错误。 我遇到了类似的问题,最简单的方法是执行以下操作 因为你的肥皂反应是 收到,将其另存为XML 磁碟 然后使用XML解析器 从您想要的任何数据 XML(创建对象或存储到 db) 这就是我解决问题的方式-SOAP响应非常大-Android-内存不足错误     
        如果获取大量数据,最好的方法是使用线程。 使用带有进度对话框的线程,这对于无需等待应用程序已“冻结”或类似情况的用户将更加友好。 示例(只是为了向您展示我的意思,您必须按自己的方式使用它):
public class YourActivity extends Activity implements Runnable {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    // Your code...
    SoapSerializationEnvelope envelope = new    SoapSerializationEnvelope(SoapEnvelope.VER11);           
    envelope.dotNet=true;  
    envelope.setOutputSoapObject(request); 

    // Running the thread
    Thread thread = new Thread(this);
    thread.start();
}

@Override
public void run() {
    try  {     
        httpTransport.call(SOAP_ACTION, envelope);// Here I am getting error 
    }   
    catch(Exception e){} 
}
祝好运!     

要回复问题请先登录注册