百度地图加载大量覆盖物addOverlay耗时问题解决方案

需求:

使用百度地图添加覆盖物,方法addOverlay,接口返回覆盖物列表,每一个覆盖物需要的图片还有文字都由接口决定,覆盖物点击需要对应跳转。

MarkerOptions markerOptions = new MarkerOptions()
                            .position(latLng)
                            .icon(BitmapDescriptorFactory.fromView(view));
                    marker = (Marker) mBaiduMap.addOverlay(markerOptions);
                    Bundle bundle = new Bundle();
                    bundle.putString("strShipInfo", strShipInfo);
                    marker.setExtraInfo(bundle);

问题描述:

当循环添加次数过多时,大概100个就会出现无响应;耗时太久。

解决方案:

使用handler机制,循环时延迟加载覆盖物请求

for (int i=0;i<groupListAreaShipsBean.size();i++){
                            Message message=new Message();
                            message.what=1;
                            message.obj=groupListAreaShipsBean.get(i);
                            handler.sendMessageDelayed(message,i*100);


                        }

在需要停止的地方直接

handler.removeMessages(1);停止handler发送消息。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值