From d565f299ad277b635ad775daf2d20fc13e3e2d1c Mon Sep 17 00:00:00 2001 From: xiaoyan-5800X Date: Mon, 19 Dec 2022 16:37:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=83=85=E5=86=B5=E4=B8=8B=E7=85=A7=E7=89=87=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=8D=9F=E5=9D=8F=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/AutoTakePictureActivity.java | 21 ++++++++++++++++++- .../navinfo/outdoor/http/HttpInterface.java | 4 ++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/navinfo/outdoor/activity/AutoTakePictureActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/AutoTakePictureActivity.java index cf1ceb5..93d0966 100644 --- a/app/src/main/java/com/navinfo/outdoor/activity/AutoTakePictureActivity.java +++ b/app/src/main/java/com/navinfo/outdoor/activity/AutoTakePictureActivity.java @@ -1309,7 +1309,9 @@ public class AutoTakePictureActivity extends BaseActivity implements View.OnClic /** * 结束采集,对照片归档 * */ + private boolean hasFinishTask = false; // 当前是否包含已完成任务未处理完 private void finishRoadTask(Map finishEntityMap) { + hasFinishTask = true; Observable.fromIterable(finishEntityMap.values()) .subscribeOn(Schedulers.io()).observeOn(Schedulers.computation()) .filter(roadMatchEntity -> roadMatchEntity!=null) @@ -1352,23 +1354,36 @@ public class AutoTakePictureActivity extends BaseActivity implements View.OnClic } }) .observeOn(AndroidSchedulers.mainThread()) + .onErrorResumeNext(new Function>() { + @Override + public ObservableSource apply(Throwable throwable) throws Exception { + return null; + } + }) .subscribe(new Consumer() { @Override public void accept(PoiEntity poiEntity) { - + // 已经处理过该任务,将其从finish列表中移除 + if (poiEntity!=null) { + finishEntityMap.remove(poiEntity.getTaskId()); + } } }, new Consumer() { @Override public void accept(Throwable throwable) { // 此处异常可能是服务返回的数据无法解析,但http正常返回了,因此可能为程序问题,不再重复尝试上报 systemTTS.playText("注意,领取任务失败!"); + XLog.e("完成失败:"+throwable.getMessage()); ToastUtils.Message(AutoTakePictureActivity.this, throwable.getMessage()); + hasFinishTask = false; } }, new Action() { @Override public void run() throws Exception { // 重新绘制网络任务和本地任务 initRoadLine2Map(); + finishEntityMap.clear(); + hasFinishTask = false; } }); } @@ -1677,6 +1692,10 @@ public class AutoTakePictureActivity extends BaseActivity implements View.OnClic @Override public void onBackPressed() { DialogSettings.style = DialogSettings.STYLE.STYLE_IOS; + if (hasFinishTask) { + MessageDialog.show(this, "提示", "后台正在处理已拍摄完成的任务,请稍后再退出当前界面"); + return; + } MessageDialog.show(this, "提示", "退出自动采集模式?", "是", "否").setOnOkButtonClickListener(new OnDialogButtonClickListener() { @Override public boolean onClick(BaseDialog baseDialog, View v) { diff --git a/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java b/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java index e73822a..720779c 100644 --- a/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java +++ b/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java @@ -3,8 +3,8 @@ package com.navinfo.outdoor.http; public class HttpInterface { // public static final String IP = "http://172.23.138.133:9999/m4";//测试接口-IP public static final String IPm = "http://dtxbmaps.navinfo.com/dtxb/dev/m4";//开发接口-外网 - public static final String IP1 = "http://dtxbmaps.navinfo.com/dtxb/test/m4";//测试接口-外网 - public static final String IP = "http://dtxbmaps.navinfo.com/dtxb/m4";//正式接口 + public static final String IP = "http://dtxbmaps.navinfo.com/dtxb/test/m4";//测试接口-外网 + public static final String IP1 = "http://dtxbmaps.navinfo.com/dtxb/m4";//正式接口 public static final String USER_PATH = "/user/";//我的 public static final String MSG_LIST_PATH = "/msgList/";//发现 public static final String USER_LOGIN_PATH = "/userlogin/";//登录