Fix: Entfernt Dauer-Loop

This commit is contained in:
2026-01-03 14:05:18 +01:00
parent e543286bc5
commit 77da3be5d7

View File

@@ -6,6 +6,7 @@ import 'package:flutter/services.dart';
import 'package:workmanager/workmanager.dart'; import 'package:workmanager/workmanager.dart';
import '../Tasks/generate_transactions_task.dart'; import '../Tasks/generate_transactions_task.dart';
import '../Tasks/task.dart';
import 'port_controller.dart'; import 'port_controller.dart';
/// Erstellt Hintergrundtasks und führt diese aus /// Erstellt Hintergrundtasks und führt diese aus
@@ -25,24 +26,35 @@ class BackgroundTaskController {
} else { } else {
unawaited( unawaited(
Isolate.run(() async { Isolate.run(() async {
sleep(const Duration(minutes: 1)); await _runTask(
GenerateTransactionsTask(),
while (true) { const Duration(minutes: 1),
final RootIsolateToken? rootIsolateToken = await PortController() const Duration(minutes: 30),
.getRootIsolateToken(); );
if (rootIsolateToken != null) {
BackgroundIsolateBinaryMessenger.ensureInitialized(
rootIsolateToken,
);
await GenerateTransactionsTask().execute();
}
sleep(const Duration(minutes: 30));
}
}), }),
); );
} }
} }
Future<void> _runTask(
final Task task,
final Duration initialDelay,
final Duration frequency,
) async {
sleep(initialDelay);
final RootIsolateToken? rootIsolateToken = await PortController()
.getRootIsolateToken();
if (rootIsolateToken != null) {
BackgroundIsolateBinaryMessenger.ensureInitialized(rootIsolateToken);
await GenerateTransactionsTask().execute();
}
sleep(frequency);
unawaited(_runTask(task, initialDelay, frequency));
}
} }
/// Die Funktion wird von Hintergrundtasks ausgerufen, um diese auszuführen /// Die Funktion wird von Hintergrundtasks ausgerufen, um diese auszuführen