import 'dart:async'; import 'time_tracking_service.dart'; import 'statistics_service.dart'; /// 后台同步服务 - 定期同步应用使用数据 class BackgroundSyncService { final TimeTrackingService _timeTrackingService = TimeTrackingService(); final StatisticsService _statisticsService = StatisticsService(); Timer? _syncTimer; bool _isRunning = false; /// 启动后台同步 Future start() async { if (_isRunning) return; _isRunning = true; // 立即同步一次 await syncNow(); // 每 15 分钟同步一次 _syncTimer = Timer.periodic(const Duration(minutes: 15), (timer) async { await syncNow(); }); // 启动原生后台追踪 await _timeTrackingService.startBackgroundTracking(); } /// 停止后台同步 Future stop() async { _isRunning = false; _syncTimer?.cancel(); _syncTimer = null; await _timeTrackingService.stopBackgroundTracking(); } /// 立即同步 Future syncNow() async { try { print('Background sync: Starting sync...'); // 同步今日数据 await _timeTrackingService.syncTodayData(); // 刷新统计 await _statisticsService.refreshTodayStats(); print('Background sync: Completed'); } catch (e) { print('Background sync error: $e'); } } /// 检查是否正在运行 bool get isRunning => _isRunning; }