我正在尝试从Map创建一个Java对象,然后将该对象转换为XML String。最后,我将发送带有后期请求的XML。在每个成功的请求之后,我必须清除数据,以便仅发布新数据。
private void send(){
try {
Map<String, List<Object>> data = getData();
Message dataMessage = Message
.serialize(data);
XmlMapper xmlMapper = new XmlMapper();
String xml = xmlMapper.writeValueAsString(dataMessage);
Log.i("debug", "xml " + xml);
getData().clear(); //Clearing the data hier is problematic
}catch(Exception e){
Log.e("debug", "Error! " + e);
}
}
如果我不清除数据,则会正确记录xml消息,但旧数据也会按预期打印。如果我注释了这一行并清除了send函数末尾的数据,则不会打印任何消息。我不明白问题是什么。可能是xml的解析是异步发生的,并且在解析发生之前删除了数据吗?有什么解决办法吗?