百度地圖載入大量覆蓋物addOverlay耗時問題解決方案
阿新 • • 發佈:2019-02-11
需求:
使用百度地圖新增覆蓋物,方法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傳送訊息。