1. 程式人生 > >百度地圖載入大量覆蓋物addOverlay耗時問題解決方案

百度地圖載入大量覆蓋物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傳送訊息。