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 2025eb9..d86bd56 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 @@ -122,18 +122,29 @@ class HomeFragment : BaseFragment() { // 启动时钟定时器 startClockUpdater() - // 主动获取当前电量(ACTION_BATTERY_CHANGED 是粘性广播,但 EventBus 可能丢失首次事件) + // 主动获取当前电量 initBatteryStatus() - // 加载任务统计数据 - fetchStatistics() + // 先加载统计数据(设好 lastStats 基准),再监听事件 + // EventBus buffer=64 会暂存期间的通知,不丢失 + viewLifecycleOwner.lifecycleScope.launch { + // 同步等待统计数据返回 + val result = safeApiCall { taskApi.getStatistics() } + if (result is ApiResult.Success && result.data != null) { + val data = result.data + tvPoolNum.text = data.waitForTask.toString() + tvPunchNum.text = data.treatTask.toString() + tvCompleteNum.text = data.incompleteTask.toString() + notificationManager.lastStats = data + Timber.d("首页: lastStats 基准已设置 ${data}") + } - // 监听 MQTT 事件 - observeEvents() + // 基准设好后再开始监听事件 + observeEvents() + } // 监听打卡状态 observePunchState() - } override fun onResume() { @@ -143,8 +154,7 @@ class HomeFragment : BaseFragment() { renderDots() return } - // 有未读通知 → 用 preNotificationStats 精确对比 - // onResume 时 view 可能重建,需要重新请求 API + // 有未读通知 → 刷新统计 + 红点 fetchStatistics(checkDots = true) }