我有一個應用程序,我需要通過SOAP調用將大量數據下載到應用程序中。然後將響應發送到一個函數,該函數轉換XML並將數據存儲在db文件中。非常大的SOAP響應 - 安卓內存不足錯誤
數據大小超過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);
}
任何人都可以建議我應該在這種情況下怎麼辦?
感謝和問候 穆庫爾
我認爲vtd-xml無疑可以幫助降低內存使用量。 – 2011-03-13 08:06:20
@ vtd-xml-author - 它也適用於android? – 2011-03-14 10:56:07