アプリケーションを初めて実行するときに、Web サービスへの SOAP 呼び出しを介して大量のデータをアプリケーションにダウンロードする必要があるアプリケーションがあります。応答は、XML を変換してデータを db ファイルに保存する関数に送信されます。
データのサイズは 16 MB を超えており、毎回 java.lang.OutOfMemoryError が発生します。
より少量のデータを提供するように Web サービスを変更することは、オプションではありません。
大きなデータをダウンロードできる方法はありますか?おそらく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);
}
この場合、誰が何をすべきかを提案できますか?
ありがとう、よろしくムクル