From be415c1eb6d30f2e780f040546a832d1979bf627 Mon Sep 17 00:00:00 2001 From: hailin Date: Thu, 5 Mar 2026 19:14:16 -0800 Subject: [PATCH] =?UTF-8?q?fix(mobile-app):=20=E5=89=8D=E5=8F=B0=E5=9B=9E?= =?UTF-8?q?=E6=9D=A5=E6=97=B6=E4=B9=9F=E4=B8=8A=E4=BC=A0=E9=81=A5=E6=B5=8B?= =?UTF-8?q?=E9=98=9F=E5=88=97=EF=BC=88=E5=A4=A7=E5=8E=82=E6=A0=87=E5=87=86?= =?UTF-8?q?=E5=81=9A=E6=B3=95=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 进入前台时 flush 覆盖两种场景: 1. 上次 paused flush 因网络失败未上传的事件 2. 上次被强杀(force-kill)遗留在本地队列的事件 app_session_start 事件(含设备信息)也在此时立即上传, 无需等待10条阈值或30秒定时器。 参考:Amplitude/Mixpanel 均在 session start 时触发 flush。 Co-Authored-By: Claude Sonnet 4.6 --- .../lib/core/telemetry/session/session_manager.dart | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/frontend/mobile-app/lib/core/telemetry/session/session_manager.dart b/frontend/mobile-app/lib/core/telemetry/session/session_manager.dart index 8b9ecb19..90e6632b 100644 --- a/frontend/mobile-app/lib/core/telemetry/session/session_manager.dart +++ b/frontend/mobile-app/lib/core/telemetry/session/session_manager.dart @@ -87,6 +87,10 @@ class SessionManager with WidgetsBindingObserver { _state = SessionState.foreground; _startNewSession(); + + // 上传上次被强杀遗留的事件 + 本次 session_start(含设备信息) + // Amplitude/Mixpanel 标准做法:回到前台即是下一次上传机会 + _telemetryService?.flushOnBackground(); } /// 处理进入后台