From 3c5e20a8cab8ee9b4bbad38b63c4a8d8088b7a40 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 28 Nov 2023 20:57:43 +0800 Subject: [PATCH] =?UTF-8?q?[6.2.0]=20[nav]=20[=E9=AB=98=E5=BE=B7=E5=AF=BC?= =?UTF-8?q?=E8=88=AA=E5=A3=B0=E9=9F=B3=E6=94=BE=E5=85=A5single=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../map/AmapNaviToDestinationModel.java | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/AmapNaviToDestinationModel.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/AmapNaviToDestinationModel.java index 9b34fa0d11..043f3bb475 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/AmapNaviToDestinationModel.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/AmapNaviToDestinationModel.java @@ -45,7 +45,7 @@ public class AmapNaviToDestinationModel implements AMapNaviListener { protected final List sList = new ArrayList(); protected final List eList = new ArrayList(); protected List mWayPointList = new ArrayList(); - private ICommonNaviChangedCallback mNaviChangedCallback; + private volatile ICommonNaviChangedCallback mNaviChangedCallback; private AtomicInteger errorCount = new AtomicInteger(0); private boolean isPlay; @@ -76,13 +76,15 @@ public class AmapNaviToDestinationModel implements AMapNaviListener { } public void setVoiceIsMute(boolean isPlay) { - if (mAMapNavi == null) return; - this.isPlay = isPlay; - if (isPlay) { - mAMapNavi.startSpeak(); - } else { - mAMapNavi.stopSpeak(); - } + ThreadUtils.getSinglePool().execute(() -> { + if (mAMapNavi == null) return; + this.isPlay = isPlay; + if (isPlay) { + mAMapNavi.startSpeak(); + } else { + mAMapNavi.stopSpeak(); + } + }); } public AMapNavi getmAMapNavi() { @@ -90,9 +92,9 @@ public class AmapNaviToDestinationModel implements AMapNaviListener { } public void destroyAmaNavi() { - if (mAMapNavi != null) { - ThreadUtils.getSinglePool().execute(() -> { - CallerLogger.i( TAG, "destroyAmaNavi()"); + ThreadUtils.getSinglePool().execute(() -> { + CallerLogger.i(TAG, "destroyAmaNavi()"); + if (mAMapNavi != null) { isPlay = false; sList.clear(); eList.clear(); @@ -100,8 +102,8 @@ public class AmapNaviToDestinationModel implements AMapNaviListener { mAMapNavi.destroy(); mAMapNavi = null; mNaviChangedCallback = null; - }); - } + } + }); } public void setTaxiNaviChangedCallback(ICommonNaviChangedCallback callback) { @@ -149,7 +151,7 @@ public class AmapNaviToDestinationModel implements AMapNaviListener { @Override public void onNaviInfoUpdate(NaviInfo naviinfo) { //导航过程中的信息更新,请看NaviInfo的具体说明 - CallerLogger.i( TAG, "距离=" + naviinfo.getPathRetainDistance() + ", 剩余时间 " + naviinfo.getPathRetainTime()); + CallerLogger.i(TAG, "距离=" + naviinfo.getPathRetainDistance() + ", 剩余时间 " + naviinfo.getPathRetainTime()); if (null != mNaviChangedCallback) { mNaviChangedCallback.onCurrentNaviDistAndTimeChanged(naviinfo.getPathRetainDistance(), naviinfo.getPathRetainTime());// 米、秒 }