diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/network/BusPassengerModelLoopManager.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/network/BusPassengerModelLoopManager.java index 044f2e3f72..c37b463947 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/network/BusPassengerModelLoopManager.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/network/BusPassengerModelLoopManager.java @@ -37,11 +37,12 @@ public class BusPassengerModelLoopManager { } private Disposable mHeartbeatDisposable; //心跳轮询 - private CompositeDisposable mRouteWipeDisposable = new CompositeDisposable(); - private CompositeDisposable mCalculateRouteDisposable = new CompositeDisposable(); //每隔2s计算一次剩余里程和时间 + private CompositeDisposable mRouteWipeDisposable; + private CompositeDisposable mCalculateRouteDisposable; //每隔2s计算一次剩余里程和时间 public void startOrStopRouteAndWipe() { CallerLogger.INSTANCE.i(M_BUS_P + TAG, "startOrStopRouteWipe()"); + if (mRouteWipeDisposable != null) return; if (mRouteWipeDisposable == null){ mRouteWipeDisposable = new CompositeDisposable(); } @@ -70,7 +71,10 @@ public class BusPassengerModelLoopManager { } public void stopOrStopRouteAndWipe() { - if (mRouteWipeDisposable != null) mRouteWipeDisposable.dispose(); + if (mRouteWipeDisposable != null) { + mRouteWipeDisposable.dispose(); + mRouteWipeDisposable = null; + } } public void startQueryDriverLineLoop() { @@ -96,6 +100,7 @@ public class BusPassengerModelLoopManager { public void startCalculateRouteInfoLoop() { CallerLogger.INSTANCE.i(M_BUS_P + TAG, "startCalculateRouteInfoLoop()"); + if (mCalculateRouteDisposable != null) return; if (mCalculateRouteDisposable == null){ mCalculateRouteDisposable = new CompositeDisposable(); } @@ -127,6 +132,7 @@ public class BusPassengerModelLoopManager { if (mCalculateRouteDisposable != null) { CallerLogger.INSTANCE.i(M_BUS_P + TAG, "stopCalculateRouteInfLoop()"); mCalculateRouteDisposable.dispose(); + mCalculateRouteDisposable = null; } } diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerBaseFragment.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerBaseFragment.java index 076e55c281..b509bc789d 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerBaseFragment.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerBaseFragment.java @@ -107,13 +107,16 @@ public abstract class BusPassengerBaseFragment() { @Override @@ -102,6 +103,7 @@ public class TaxiPassengerModelLoopManager { if (mRouteWipeDisposable != null) { CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "stopRouteAndWipe()"); mRouteWipeDisposable.dispose(); + mRouteWipeDisposable = null; } }