问题
我目前正在通过迭代一组名为“CCTrackLocation”的自定义对象来创建一个 gpx 字符串。但是,这太慢了,尤其是在有很多位置的情况下。我也在异步任务中运行它。
这是我的代码。
for (CCTrackLocation location: trackLocations) {
//Log.e("CCGPXUtils", "Time wasting");
String amendedString = gpxString + "<trkpt lat=\""+location.getLatitude()+"\" lon=\""+location.getLongitude()+"\">\n" +
"<ele>"+location.getAltitude()+"</ele>\n" +
"<time>"+CCDateUtility.convertTimestampIntoGPXFormat(location.getTimestamp())+"</time></trkpt>\n";
gpxString = amendedString;
amendedString = null;
前 500 个左右的点转换得很好,之后我在调试控制台中得到“GC_FOR_MALLOC”和“GC_CONCURRENT”。
问题
有没有更有效的方法来做到这一点,不会那么耗时?
任何帮助将非常感激。