From b696cb8d0320509f795566ffda71cf3f74786190 Mon Sep 17 00:00:00 2001 From: jjLv <1981429112@qq.com> Date: Wed, 19 Nov 2025 10:44:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=AF=E5=B1=8F=E4=BA=BA=E5=91=98=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=B1=95=E7=A4=BA3s=E7=A7=BB=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/SecondPresentation.java | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/bonus/canteen/presentation/SecondPresentation.java b/app/src/main/java/com/bonus/canteen/presentation/SecondPresentation.java index 9b138f4..baa146d 100644 --- a/app/src/main/java/com/bonus/canteen/presentation/SecondPresentation.java +++ b/app/src/main/java/com/bonus/canteen/presentation/SecondPresentation.java @@ -27,6 +27,8 @@ import android.graphics.Point; import android.hardware.Camera; import android.os.Build; import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; import android.util.Log; import android.view.Display; import android.view.View; @@ -193,6 +195,10 @@ public class SecondPresentation extends Presentation { private String faceScanType; private ImageView imgFaceImg; private TextView tvPersonName,tvUserBalance; + + private final Runnable clearUserInfoRunnable = this::clearUserInfo; + Handler mainHandler = new Handler(Looper.getMainLooper()); + public void setSalesData(List rawData) { this.salesMenuEntityList = rawData; // 更新列表 @@ -390,9 +396,9 @@ public class SecondPresentation extends Presentation { if (faceFeature != null) { Integer likeness = likenessMap.get(requestId); // if (!livenessDetect) { - //不做活体检测的情况,直接搜索 - MyLog.i(TAG, "不做活体检测的情况,直接搜索: "); - searchFace(nv21Data, faceFeature, requestId, faceInfo, type); + //不做活体检测的情况,直接搜索 + MyLog.i(TAG, "不做活体检测的情况,直接搜索: "); + searchFace(nv21Data, faceFeature, requestId, faceInfo, type); // } else if (likeness != null && likeness == LivenessInfo.ALIVE) { // //活体检测通过,搜索特征 // MyLog.i(TAG, "活体检测通过,搜索特征: "); @@ -600,6 +606,7 @@ public class SecondPresentation extends Presentation { @SuppressLint("SetTextI18n") public void setUserInfo(String userId) { + mainHandler.removeCallbacks(clearUserInfoRunnable); Log.i(TAG, "setUserInfo userId: " + userId); ThreadPoolManager.getExecutor().execute(()->{ if (StringHelper.isEmptyAndNull(userId))return; @@ -619,12 +626,14 @@ public class SecondPresentation extends Presentation { } tvPersonName.setText(userInfo.getNickName()); tvUserBalance.setText("余额\n" + (new BigDecimal(userInfo.getPersonalWalletBalance()).add(new BigDecimal(userInfo.getSubsidiesBalance()))).divide(new BigDecimal(100),2, RoundingMode.HALF_UP).toString()); + mainHandler.postDelayed(clearUserInfoRunnable, 3000); }); }); } @SuppressLint("SetTextI18n") public void clearUserInfo() { + mainHandler.removeCallbacks(clearUserInfoRunnable); runOnUiThread(() -> { tvPersonName.setText(""); GlideUtil.GlideWithPlaceHolder(context, R.drawable.ic_person_photo).into(imgFaceImg); @@ -810,13 +819,13 @@ public class SecondPresentation extends Presentation { private void searchFace(final byte[] nv21Data, final FaceFeature frFace, final Integer requestId, final FaceInfo faceInfo, String type) { Observable.create((ObservableOnSubscribe) emitter -> { - MyLog.d("人脸识别", "searchFace requestId: " + requestId); - MyLog.d("人脸识别", "searchFace: " + Arrays.toString(frFace.getFeatureData())); - MyLog.d("人脸识别", "searchFace faceRegisterInfoList: " + FaceServer.getInstance().faceRegisterInfoList.size()); - CompareResult compareResult = FaceServer.getInstance().getCollectionFaceLib(frFace); - MyLog.d("人脸识别", "searchFace compareResult: " + compareResult); - emitter.onNext(compareResult); - }) + MyLog.d("人脸识别", "searchFace requestId: " + requestId); + MyLog.d("人脸识别", "searchFace: " + Arrays.toString(frFace.getFeatureData())); + MyLog.d("人脸识别", "searchFace faceRegisterInfoList: " + FaceServer.getInstance().faceRegisterInfoList.size()); + CompareResult compareResult = FaceServer.getInstance().getCollectionFaceLib(frFace); + MyLog.d("人脸识别", "searchFace compareResult: " + compareResult); + emitter.onNext(compareResult); + }) .subscribeOn(Schedulers.computation()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { @@ -961,6 +970,8 @@ public class SecondPresentation extends Presentation { @Override public void onDetachedFromWindow() { ThreadPoolManager.shutdown(); + mainHandler.removeCallbacks(clearUserInfoRunnable); + mainHandler.removeCallbacksAndMessages(null); if (faceHelper != null) { faceHelper.release(); }