【发布时间】:2011-02-09 05:18:18
【问题描述】:
我有一个应用程序,当它首次运行时,我需要通过对 Web 服务的 SOAP 调用将大量数据下载到应用程序中。然后将响应发送到转换 XML 并将数据存储在 db 文件中的函数。
数据大小超过 16MB,我每次都有 java.lang.OutOfMemoryError。
修改网络服务以提供更少量的数据不是一种选择。
有没有办法可以下载大数据?可能是 InputStream 之类的东西?
这是我的代码
public Protocol[] getProtocols() {
String METHOD_NAME = "GetProtocols";
String SOAP_ACTION = "urn:protocolpedia#GetProtocols";
Log.d("service", "getProtocols");
SoapObject response = invokeMethod(METHOD_NAME, SOAP_ACTION);
return retrieveProtocolsFromSoap(response);
}
private SoapObject invokeMethod(String methodName, String soapAction) {
Log.d(TAG, "invokeMethod");
SoapObject request = GetSoapObject(methodName);
SoapSerializationEnvelope envelope = getEnvelope(request);
return makeCall(envelope, methodName, soapAction);
}
谁能建议在这种情况下应该怎么做?
感谢和问候 穆库尔
【问题讨论】:
-
我认为 vtd-xml 无疑可以帮助降低内存使用率。
标签: android soap android-ksoap2