From 69abf6071ac0feed0b3bf2da7f906f57659ed5c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 12 Feb 2020 18:48:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 优化了地图的气泡高亮展示性能,放到了子线程 --- .../service/marker/MapMarkerManager.java | 43 +++++++++++-------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java index 6025257b38..10a74a29a8 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java @@ -77,7 +77,8 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag .getMogoSocketManager() .registerOnMessageListener(401001, this); - MarkerServiceHandler.getMogoCardManager().registerCardChangedListener("LAUNCHER_MARKER_MODULE", new IMogoCardChangedListener() { + MarkerServiceHandler.getMogoCardManager() + .registerCardChangedListener("LAUNCHER_MARKER_MODULE", new IMogoCardChangedListener() { @Override public void onSwitched(int position, String moduleName) { @@ -184,26 +185,32 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag // 对指定类型高亮处理 - public synchronized static void highlightedMarker(String typeTag) { - try { - Map> allMarker = MarkerServiceHandler.getMarkerManager().getAllMarkers(); - for (Map.Entry> entry : allMarker.entrySet()) { - String keyStr = entry.getKey(); - List markerList = entry.getValue(); + public synchronized static void highlightedMarker(final String typeTag) { + Handler handler = new Handler(); + handler.post(new Runnable() { + @Override + public void run() { + try { + Map> allMarker = MarkerServiceHandler.getMarkerManager().getAllMarkers(); + for (Map.Entry> entry : allMarker.entrySet()) { + String keyStr = entry.getKey(); + List markerList = entry.getValue(); - if (keyStr.equals(typeTag)) { - for (IMogoMarker marker : markerList) { - marker.setAlpha(1f); - } - } else { - for (IMogoMarker marker : markerList) { - marker.setAlpha(0.7f); + if (keyStr.equals(typeTag)) { + for (IMogoMarker marker : markerList) { + marker.setAlpha(1f); + } + } else { + for (IMogoMarker marker : markerList) { + marker.setAlpha(0.7f); + } + } } + } catch (Exception e) { + e.printStackTrace(); } } - } catch (Exception e) { - e.printStackTrace(); - } + }); } /** @@ -327,7 +334,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, IMogoOnMessag } // 将数据同步给探路,避免探路每次 perform 的时候去拉取,造成消耗 - MogoDataHandler.getInstance().invoke( ServiceConst.CARD_TYPE_ROAD_CONDITION, exploreWayList); + MogoDataHandler.getInstance().invoke(ServiceConst.CARD_TYPE_ROAD_CONDITION, exploreWayList); if (exploreWayList != null) { for (MarkerExploreWay markerExploreWay : exploreWayList) { if (!markerExploreWay.getCanLive()) {