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 13014349..8b9ecb19 100644 --- a/frontend/mobile-app/lib/core/telemetry/session/session_manager.dart +++ b/frontend/mobile-app/lib/core/telemetry/session/session_manager.dart @@ -95,6 +95,9 @@ class SessionManager with WidgetsBindingObserver { _state = SessionState.background; _endCurrentSession(); + + // session_end 写入队列后立即上传,不等待10条阈值 + _telemetryService?.flushOnBackground(); } /// 开始新会话 diff --git a/frontend/mobile-app/lib/core/telemetry/telemetry_service.dart b/frontend/mobile-app/lib/core/telemetry/telemetry_service.dart index 194ea3e3..a3d8b426 100644 --- a/frontend/mobile-app/lib/core/telemetry/telemetry_service.dart +++ b/frontend/mobile-app/lib/core/telemetry/telemetry_service.dart @@ -373,6 +373,12 @@ class TelemetryService { /// 获取设备上下文 DeviceContext? get deviceContext => _deviceContext; + /// App进入后台时调用:忽略10条阈值,立即上传队列中的事件 + Future flushOnBackground() async { + await _uploader.uploadBatch(batchSize: 50); + debugPrint('📊 [Telemetry] Flushed on background'); + } + /// App退出前调用 Future dispose() async { _configSyncTimer?.cancel();