startBackgroundSync static method

Future<void> startBackgroundSync()

Inicia a sincronização em background

Implementation

static Future<void> startBackgroundSync() async {
  if (!_isInitialized) {
    await initialize();
  }

  try {
    await Workmanager().cancelByUniqueName(SyncConstants.backgroundSyncTaskName);

    //  Registrar nova tarefa periódica
    await Workmanager().registerPeriodicTask(
      SyncConstants.backgroundSyncTaskName,
    SyncConstants.backgroundSyncTaskName,
    frequency: SyncConstants.backgroundSyncFrequency,
    initialDelay: SyncConstants.backgroundSyncInterval,
      constraints: Constraints(
        networkType: NetworkType.connected,
        requiresBatteryNotLow: true,
      ),
      backoffPolicy: BackoffPolicy.exponential,
      backoffPolicyDelay: const Duration(minutes: 5),
    );

    _isInitialized = true;
    SyncUtils.debugLog('Sincronização em background iniciada', tag: 'BackgroundSyncService');
  } catch (e) {
    SyncUtils.debugLog('Erro ao iniciar sincronização em background: $e', tag: 'BackgroundSyncService');
    rethrow;
  }
}