0

在我的应用程序中,我使用 ksoap2 从 .net Web 服务中检索数据。我们正在传输的数据采用称为“xml 字符串”的格式。如果我访问 1000 个项目记录,它工作正常。但是,当我尝试从服务器访问 12000 条项目记录时,它在我的 logcat 中给出“5943816 字节分配内存不足”错误。

//////////////// 我的用于从服务器检索数据的代码,

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                        SoapEnvelope.VER11);
request.addProperty("myparameter", myparameter);
envelope.dotNet = true;// to handle .net services asmx/aspx
envelope.setOutputSoapObject(request);

HttpTransportSE ht = new HttpTransportSE(MyURL);
ht.debug = true;

ht.call(SOAP_ACTION, envelope);
// to change dialog
publishProgress("Moving data file");

SoapObject resultString = (SoapObject) envelope.getResponse();

/////////////////

我知道这是因为堆大小问题。但是我不知道如何解决这个问题,如果有人对此有解决方案,请帮助我..

4

1 回答 1

0

最后我找到了解决上述问题的方法,首先我修改了 .net 服务以返回 xml 包含的行数。然后我将从服务中请求在堆大小以下的大量行并将其写入本地文件。我重复此操作,直到我从服务器获得 xml 中的最后一行。完成所有行后,我使用文件进行进一步处理。

于 2013-09-24T13:38:44.533 回答