From 602f0ccce60204606b7438deda94af14359a0e83 Mon Sep 17 00:00:00 2001 From: dongliang Date: Wed, 29 Apr 2026 20:44:50 +0930 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8E=BB=E6=8A=96=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E5=90=8E=E6=9B=B4=E6=96=B0=E6=A8=AA=E5=B9=85=E6=95=B0=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:多条消息同时到达,第一条横幅显示1,后续被去抖暂存。 1s后合并处理emit NewTaskArrived(count=3),但MainActivity 只监听MqttMessageReceived更新横幅,不监听NewTaskArrived。 修复:MainActivity同时监听NewTaskArrived,去抖合并后更新横幅。 时序:消息1→横幅"1条" → 消息2,3暂存 → 1s后合并→横幅更新"3条" Co-Authored-By: Claude Opus 4.6 (1M context) --- .../java/com/xiaoqu/watch/app/MainActivity.kt | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/xiaoqu/watch/app/MainActivity.kt b/app/src/main/java/com/xiaoqu/watch/app/MainActivity.kt index 428a5f3..b6c831a 100644 --- a/app/src/main/java/com/xiaoqu/watch/app/MainActivity.kt +++ b/app/src/main/java/com/xiaoqu/watch/app/MainActivity.kt @@ -80,12 +80,23 @@ class MainActivity : AppCompatActivity() { private fun observeMqttMessages() { activityScope.launch { eventBus.events.collect { event -> - if (event is AppEvent.MqttMessageReceived && event.type == 1) { - notificationManager.onNewTaskMessage(event.rawJson) - val count = notificationManager.pendingCount - if (count > 0) { - notificationBanner.show(count) + when (event) { + is AppEvent.MqttMessageReceived -> { + if (event.type == 1) { + notificationManager.onNewTaskMessage(event.rawJson) + val count = notificationManager.pendingCount + if (count > 0) { + notificationBanner.show(count) + } + } } + // 去抖合并完成后 → 更新横幅数字 + is AppEvent.NewTaskArrived -> { + if (event.count > 0) { + notificationBanner.show(event.count) + } + } + else -> {} } } }