diff --git a/lib/Controller/background_task_controller.dart b/lib/Controller/background_task_controller.dart index f210263..a877ff2 100644 --- a/lib/Controller/background_task_controller.dart +++ b/lib/Controller/background_task_controller.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:isolate_manager/isolate_manager.dart'; +import 'package:uuid/uuid.dart'; import 'package:workmanager/workmanager.dart'; import '../Tasks/BackgroundHandler/workers.dart'; @@ -50,4 +51,18 @@ class BackgroundTaskController { } } } + + /// Führt den angegebenen Task sofort aus. + static Future run(final String taskName) async { + if (!kIsWeb && Platform.isAndroid) { + final String uuid = const Uuid().v4(); + unawaited(Workmanager().registerOneOffTask('$taskName-$uuid', taskName)); + } else { + unawaited(IsolateManager.runFunction(runTask, { + 'taskName': taskName, + 'initialDelayMinutes': 0, + 'frequencyMinutes': 0, + })); + } + } }