taxi 3秒轮询方案 缓解长连接异常
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user