getTasksWithTag method

  1. @override
Future<List<BackgroundTaskInfo>> getTasksWithTag(
  1. String tag
)
override

Implementation

@override
Future<List<BackgroundTaskInfo>> getTasksWithTag(String tag) async {
  if (!_startedInitialization) {
    throw Exception("BackgroundTaskManager initialization not initiated. Please call BackgroundTaskManager.singleton.init()");
  }
  if (!initCompletable.isCompleted) await initCompletable.future;
  if (!isInitialized) throw Exception("BackgroundTaskManager is not initialized.");
  final tasksWithTag = <BackgroundTaskInfo>[];
  final tasks = await _methodChannel.invokeMethod<List>("getTasksWithTag", {"tag": tag});
  if (tasks is List) {
    final idList = <String>[];
    for (var e in tasks) {
      if (e is! Map) continue;
      final s = e["taskId"];
      if (s is String) idList.add(s);
    }
    return await cache.getTasks(idList);
  }
  return tasksWithTag;
}