У меня есть приложение, в котором мне нужно загрузить большой объем данных через SOAP-вызов веб-сервису в приложение, когда оно выполняется в первый раз. Затем ответ отправляется в функцию, которая преобразует XML и сохраняет данные в файле db.
Данные имеют размер более 16 МБ, и каждый раз я получаю 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);
}
Кто-нибудь может предложить, что делать в этом случае?
Спасибо и приветствую Mukul