diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java index d4d5e3e9fb..1ded643d76 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java @@ -28,8 +28,11 @@ import com.mogo.utils.storage.SharedPrefsMgr; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.TimeUnit; +import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; public @@ -149,6 +152,14 @@ class MogoOCHTaxiModel { Logger.e(TAG,"querryCarStatus:"+data.data.status); mOCHRHCarstatus = data.data.status == 1 ? 1:0; + + if (mOCHRHCarstatus == 1){ + timeLoop(); + }else { + if (mDisposable != null ){ + mDisposable.dispose(); + } + } //更新view OCHTaxiUiController.getInstance().onOperationChanged(mOCHRHCarstatus==1); //刷新数据 @@ -841,4 +852,18 @@ class MogoOCHTaxiModel { e.printStackTrace(); } } + + private static final int PERIOD = 3 * 1000; + private static final int DELAY = 100; + private Disposable mDisposable; + /** + * 定时循环任务 + */ + private void timeLoop() { + mDisposable = Observable.interval(DELAY, PERIOD, TimeUnit.MILLISECONDS) + .map((aLong -> aLong + 1)) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(aLong -> query2RestoreOrderStatus(null)); + } } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiFragment.java index debe96589a..428524960f 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/OCHTaxiFragment.java @@ -67,7 +67,7 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i private TextView mDistance; private MogoPolylineOptions mogoPolylineOptions; - private int saveOrderState = -1; + private volatile int saveOrderState = -1; @Override public int getStationPanelViewId() { return R.layout.module_och_taxi_panel;