我有一个应用程序,需要在首次运行时通过SOAP调用从Web服务下载大量数据到应用程序中。然后将响应发送到将XML转换并将数据存储在数据库文件中的函数。
数据超过16MB大小,每次都会出现java.lang.OutOfMemoryError错误。
修改Webservice以提供较小量的数据不是一个选项。
是否有一种方法可以下载大型数据?例如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);
}
有人能建议在这种情况下应该做什么吗?
谢谢和问候 Mukul