From 3d991c0169a60e1a675f74ae3067be153d4537f5 Mon Sep 17 00:00:00 2001 From: dongliang Date: Thu, 7 May 2026 17:12:42 +0930 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=A6=96=E9=A1=B5=E7=94=A8=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E6=95=B0=E6=8D=AE=E5=A1=AB=E5=85=85=E5=8D=A1=E7=89=87?= =?UTF-8?q?=E6=95=B0=E5=AD=97=EF=BC=8C=E6=B6=88=E9=99=A4=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E9=97=AA=E7=83=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 之前流程:inflate(数字=0) → API请求 → 数字跳到真实值,产生闪烁 现在流程:inflate → 立即用 lastStats 缓存填充 → API静默更新 首次启动无缓存时仍显示 XML 默认值 0,之后都是无感刷新 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../java/com/xiaoqu/watch/ui/home/HomeFragment.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt b/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt index c157ab3..f085e50 100644 --- a/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt @@ -123,10 +123,15 @@ class HomeFragment : BaseFragment() { // 主动获取当前电量 initBatteryStatus() - // 先加载统计数据(设好 lastStats 基准),再监听事件 - // EventBus buffer=64 会暂存期间的通知,不丢失 + // 先用缓存数据填充(避免 "0" → 真实值的闪烁) + notificationManager.lastStats?.let { cached -> + updateCardNum(tvPoolNum, cached.waitForTask) + updateCardNum(tvPunchNum, cached.treatTask) + updateCardNum(tvCompleteNum, cached.incompleteTask) + } + + // 再异步请求最新数据,静默更新 viewLifecycleOwner.lifecycleScope.launch { - // 同步等待统计数据返回 val result = safeApiCall { taskApi.getStatistics() } if (result is ApiResult.Success && result.data != null) { val data = result.data @@ -134,7 +139,6 @@ class HomeFragment : BaseFragment() { updateCardNum(tvPunchNum, data.treatTask) updateCardNum(tvCompleteNum, data.incompleteTask) notificationManager.lastStats = data - Timber.d("首页: lastStats 基准已设置 ${data}") } // 基准设好后再开始监听事件