From b5626946655b9b704ebea9e995899d86d640172c Mon Sep 17 00:00:00 2001 From: lvmeng <848755140@qq.com> Date: Fri, 15 May 2026 10:14:48 +0800 Subject: [PATCH] =?UTF-8?q?fix(ui):=20=E4=BF=AE=E5=A4=8D=E5=AD=90=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E8=B0=83=E6=96=99=E6=95=B0=E6=8D=AE=E6=9C=89=E6=97=B6?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将 observeScaleData 中的 collectLatest 改为 collect, 避免多个秤数据并发到来时 block 被取消导致 ts 已记录但 rawWeightMap 未更新,造成后续数据被永久跳过的竞态问题。 --- .../main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt index f376272..7083a41 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt @@ -36,7 +36,6 @@ import com.shuwei.dish.match.utils.ext.startActivity import com.shuwei.dish.match.utils.ext.toJsonString import com.shuwei.dish.match.utils.ext.toast import com.shuwei.dish.match.utils.ext.visible -import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch @SuppressLint("UseSparseArrays") @@ -226,7 +225,7 @@ class SubmitFoodActivity : BaseActivity() { private fun observeScaleData() { val flow = ScaleServiceManager.allScales ?: return lifecycleScope.launch { - flow.collectLatest { scaleMap -> + flow.collect { scaleMap -> //Log.d(TAG, "observeScaleData,scaleMap=${scaleMap.toJsonString()}") scaleMap.forEach { (key, data) -> // ts 未变化说明是其他秤更新触发的 StateFlow 重发,跳过