diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XLocationListener.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XLocationListener.java index 8b1a112edc..3d2977423f 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XLocationListener.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XLocationListener.java @@ -69,7 +69,7 @@ public class V2XLocationListener private CarLocationSubject mCarLocationSubject; private V2XLocationListener() { - mCarLocationSubject = new CarLocationSubject(); + mCarLocationSubject = CarLocationSubject.getInstance(); // 注册最优路线的推荐观察者 mCarLocationSubject.registerObserver( V2XOptimalRouteObserver.TYPE, diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/observer/CarLocationSubject.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/observer/CarLocationSubject.java index 1f238875ad..262ea1a2ae 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/observer/CarLocationSubject.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/observer/CarLocationSubject.java @@ -12,12 +12,27 @@ import java.util.Set; */ public class CarLocationSubject { + private static CarLocationSubject mCarLocationSubject; // 车辆位置 public MogoLocation carLocation; // 观察者集合 - private HashMap observers = new HashMap(); + private HashMap mObservers = new HashMap<>(); + private CarLocationSubject() { + } + + public static CarLocationSubject getInstance() { + if (mCarLocationSubject == null) { + synchronized (CarLocationSubject.class) { + if (mCarLocationSubject == null) { + mCarLocationSubject = new CarLocationSubject(); + } + } + } + return mCarLocationSubject; + } + /** * 设置新的车辆位置 * @@ -35,7 +50,7 @@ public class CarLocationSubject { * @param observer 新的观察者 */ public void registerObserver(String observerType, CarLocationObserver observer) { - observers.put(observerType, observer); + mObservers.put(observerType, observer); } /** @@ -44,16 +59,16 @@ public class CarLocationSubject { * @param observerType 观察者类型 */ public void removeObserver(String observerType) { - observers.remove(observerType); + mObservers.remove(observerType); } /** * 通知所有观察者更新 */ private void notifyAllObservers() { - Set keySet = observers.keySet(); + Set keySet = mObservers.keySet(); for (String s : keySet) { - CarLocationObserver observer = observers.get(s); + CarLocationObserver observer = mObservers.get(s); if (observer != null) { observer.update(carLocation); } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/overlay/V2XOptimalRouteOverlay.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/overlay/V2XOptimalRouteOverlay.java index f59752afe4..ae97a08626 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/overlay/V2XOptimalRouteOverlay.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/overlay/V2XOptimalRouteOverlay.java @@ -57,7 +57,7 @@ public class V2XOptimalRouteOverlay { } } - mPolylineColors.addAll(ColorUtils.gradientAlpha("#002965ED", "#FF2965ED", mPolylinePointList.size()/2)); + mPolylineColors.addAll(ColorUtils.gradientAlpha("#002965ED", "#FF2965ED", mPolylinePointList.size() / 3)); // 替换路径集合 mPolylineOptions.points(mPolylinePointList);