我'使用' Android.Gms.Maps.Utils.Clustering' Xamarin android的绑定库。
我在地图中显示大约1000个带有搜索功能的项目。所以每次用户搜索对象时,我都应该在Map中刷新标记,这是我的代码:
private void SetPointersOnMap (List<MerchantInfo> merchants)
{
if (merchants != null) {
_clusterManager.ClearItems ();
if (_map != null) {
var count = merchants.Count;
List<ClusterItem> items = new List<ClusterItem> ();
items = merchants.Where (item => item.Longitude.HasValue && item.Latitude.HasValue)
.Select (item => new ClusterItem (item.Latitude.Value, item.Longitude.Value, item.MerchantId)).ToList ();
_clusterManager.AddItems (items);
}
_clusterManager.Cluster ();
_infoWindowAdapter = new InfoWindowAdapter (null, merchants, this.LayoutInflater);
_map.SetInfoWindowAdapter (_infoWindowAdapter);
}
}
它通常有效,但在某些情况下,我无法准确确定何时,我无法正常工作,这行代码记录错误:
_clusterManager.ClearItems ();
[System.out](HTTPLog)-Static:isSBSettingEnabled false [时间轴] 时间轴:Activity_idle id:android.os.BinderProxy@1bb9c140 时间:774533321在Kunicardus.Droid.MerchantsView.SetPointersOnMap (System.Collections.Generic.List`1商家)[0x0000e] ....
在某些设备中也有另一个例外:
[monodroid-gc] GC清理摘要:测试了104个对象 - 复活 90。 [Mono] GC_OLD_BRIDGE num-objects 104 num_hash_entries 1603 sccs size 1347 init 0.00ms df1 5.25ms sort 0.28ms dfs2 3.81ms setup-cb 0.29ms自由数据2.71ms链接2418/2418/6240/12 dfs通过4125/3765 [单声道] GC_MINOR :(幼儿园全程)暂停13.89ms,总计14.29ms,桥 83.17ms在Kunicardus.Droid.MerchantsView.SetPointersOnMap推广224K主要18128K los 11233K (System.Collections.Generic.List`1商家)[0x0000e]