我有一个应用程序,我需要在首次运行时通过对 Web 服务的 SOAP 调用将大量数据下载到应用程序中。然后将响应发送到转换 XML 并将数据存储在 db 文件中的函数。
数据大小超过 16MB,我每次都有 java.lang.OutOfMemoryError。
修改 web 服务以提供更少量的数据不是一种选择。
有没有办法能够下载大数据?也许像 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);
}
谁能建议在这种情况下应该做什么?
感谢和问候穆库尔