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