android xml布局内存溢出,拼接xml时出现内存溢出解决办法

///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 item

zrate.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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值