Как правильно реализовать 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
Я действительно не могу понять, что не так с моим кодом. Заранее спасибо!