解决BUG

优化了地图的气泡高亮展示性能,放到了子线程
This commit is contained in:
董宏宇
2020-02-12 18:48:39 +08:00
parent 179f99c58d
commit 69abf6071a

View File

@@ -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<String, List<IMogoMarker>> allMarker = MarkerServiceHandler.getMarkerManager().getAllMarkers();
for (Map.Entry<String, List<IMogoMarker>> entry : allMarker.entrySet()) {
String keyStr = entry.getKey();
List<IMogoMarker> 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<String, List<IMogoMarker>> allMarker = MarkerServiceHandler.getMarkerManager().getAllMarkers();
for (Map.Entry<String, List<IMogoMarker>> entry : allMarker.entrySet()) {
String keyStr = entry.getKey();
List<IMogoMarker> 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()) {