android xml布局内存溢出,拼接xml时出现内存溢出解决办法
///designed by Alex///解决内存溢出问题,不可使用迭代器和foreach///循环遍历List, 别生成xml,一边释放///反向遍历,相当于出栈,避免索引顺序乱的问题///反转List.if (zrate.RateList != null && zrate.RateList.Count != 0){log.Debug("反转list");zrate.RateL
///designed by Alex///解决内存溢出问题,不可使用迭代器和foreach///循环遍历List, 别生成xml,一边释放///反向遍历,相当于出栈,避免索引顺序乱的问题///反转List.
if (zrate.RateList != null && zrate.RateList.Count != 0)
{
log.Debug("反转list");
zrate.RateList.Reverse();
log.Debug("循环遍历Zrate List 生成xml");int policySize =zrate.RateList.Count;for (int index = policySize - 1; index > -1; index--)
{
SplitPolicy item=zrate.RateList[index];string strChangePnr = item.IsChangePnr ? "1" : "0";string strCabin =item.Cabin;try{
strCabin= strCabin.Replace("/", "");
}catch{ }decimal c = item.Rate +item.RuleRate;string d = item.IsAutoTicket ? "1" : "0";string strWeekNum =item.WeekNum;if (strWeekNum != "")
{
strWeekNum= strWeekNum.Replace("/", ",");
}string ZtFlightNumber = "";try{
ZtFlightNumber= item.ApplyFlightNumber.Replace('/', ',');
}catch{ }string ZtNoFlightNumber = "";try{
ZtNoFlightNumber= item.NotApplyFlightNumber.Replace('/', ',');
}catch{ }string WorkTimeWeekDay = "";string RefundWorkTimeWeekDay = "";//工作时间
for (int i = 0; i < 5; i++)
{
WorkTimeWeekDay= WorkTimeWeekDay + item.WorkTimeWeekDay + ",";
RefundWorkTimeWeekDay= RefundWorkTimeWeekDay + item.RefundTimeWeekDay + ",";
}//休息日
for (int i = 0; i < 2; i++)
{
WorkTimeWeekDay= WorkTimeWeekDay + item.WorkTimePlayDay + ",";
RefundWorkTimeWeekDay= RefundWorkTimeWeekDay + item.RefundTimePlayDay + ",";
}
info.Append("
info.Append("ProviderWorkTime='" + WorkTimeWeekDay.Trim(',') + "' PorviderVWorkTime='" + RefundWorkTimeWeekDay.Trim(',') + "'>");
info.Append(item.DepartCode.Replace("/", ",") + "|" + item.ArriveCode.Replace("/", ",") + "|" + item.AirCompany + "|" + item.TripType + "|");
info.Append(ZtFlightNumber+ "|" + ZtNoFlightNumber + "|" + strWeekNum + "|" + item.TicketType + "|");
info.Append(strCabin+ "|" + c.ToString("0.000") + "|" + item.SaleBeginTime.ToString("yyyy-MM-dd") + ",");
info.Append(item.SaleEndTime.ToString("yyyy-MM-dd") + "|" + item.TravelBeginTime.ToString("yyyy-MM-dd") + ",");
info.Append(item.TravelEndTime.ToString("yyyy-MM-dd") + "|" + item.OfficeID + "|");
info.Append(item.AddTime.ToString("yyyy-MM-ddTHH:mm:ss.fff") + "|" + item.ModifyTime.ToString("yyyy-MM-ddTHH:mm:ss.fff") + "|");
info.Append(item.SupplierCode+ "|" + item.Remark + "|" +d);
info.Append("
");//同时remove itemzrate.RateList.RemoveAt(index);//每10000条调用一次gc,回收前一百条被remove的数据
if (0 == index % 10000)
{
GC.Collect();
}
} }else{
log.Error("zrate里的RateList为空!");
}
}else{
info.Append("");
info.Append("");
}
info.Append("");//WriteLog.WriteErrorLogDataInteraction(info.ToString(), "变动政策返回信息");
log.Debug("返回xml成功");return info.ToString();
更多推荐
所有评论(0)