Tengo una aplicación donde necesito descargar una gran cantidad de datos a través de una llamada SOAP a un servicio web en la aplicación cuando se ejecuta por primera vez. La respuesta se envía a una función que convierte el XML y almacena los datos en un archivo db.Respuesta SOAP muy grande - Android - error de memoria
Los datos tienen más de 16 MB de tamaño y tengo java.lang.OutOfMemoryError cada vez.
La modificación del servicio web para proporcionar pequeñas cantidades de datos no es una opción.
¿Hay alguna manera de poder descargar los datos de gran tamaño? Algo como un InputStream tal vez?
Este es mi código
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);
}
Puede alguien sugerir qué se debe hacer en este caso?
Gracias y saludos Mukul
I Creo que vtd-xml puede ayudar a reducir el uso de memoria. –
@ vtd-xml-author - ¿también funciona para android? –