Как правильно реализовать workmanager oneoffevent

Я пытаюсь использовать workmanager для запуска кода в фоновом режиме каждые 15 секунд. Когда пользователь нажимает кнопку, он регистрирует новое событие.

      Workmanager.registerOneOffTask("1", "busTrip");

это должно выполняться в цикле, пока bool isBusTripOngoing имеет значение true.

      void callbackDispatcher() {
  Workmanager.executeTask((task, inputData) async {
    switch (task) {
      case "busTrip":

        while (isBusTripOngoing) {
          Future.delayed(Duration(seconds: 15), () {
            print('yes');
            updateCurrentLocation();
          });
        }
        break;
    }

    return Future.value(true);
  });
}

Проблема в том, что когда пользователь запускает «поездку», workmanager запускает активность, но, похоже, не запускает updateCurrentLocation () или вообще ничего не печатает. Он просто прекращает деятельность и возвращает

      Worker result SUCCESS for Work 

Я действительно не могу понять, что не так с моим кодом. Заранее спасибо!

0 ответов

Другие вопросы по тегам