dart Flutter Workmanager任务未随应用程序更新而更新

6g8kf2rb  于 2023-09-28  发布在  Flutter
关注(0)|答案(2)|浏览(108)

所以我有一个问题,我现有的Flutter Workmanager后台任务没有在应用程序更新后自动更新。
我有一个示例代码,它设置了一个定期的Workmanager作业。

void main() async
{
  WidgetsFlutterBinding.ensureInitialized();
  
  Workmanager().initialize(
      callbackDispatcher
    );

  await Workmanager().registerPeriodicTask(
      "ExampleTask",
      "ExampleTaskPeriodicTask",
      initialDelay: Duration(minutes: 15,
      frequency: Duration(hours: 1)
    );
}

void callbackDispatcher() async
{
  Workmanager().executeTask((task, inputData) async 
  {
    await DoSomething();
    
    return Future.value(true);
  }); 
}

如果我在后台任务中更新DoSomething(),目前它不会为用户更新,它会继续做旧的事情,而不是新的事情。
有没有办法更新后台任务,而用户不必在应用程序自动更新后做任何事情?

lskq00tm

lskq00tm1#

通过使用adb更新应用程序的测试和调试(flutter run不适合),解决方案是将existingWorkPolicy: ExistingWorkPolicy.append添加到周期性任务注册表中。

qyswt5oh

qyswt5oh2#

Workmanager().initialize(callbackDispatcher);
  Workmanager().registerPeriodicTask(
    'uniqueTaskName', // Unique name for the task
    'simplePeriodicTask',
    frequency: Duration(seconds: 15),
    // Repeat interval in seconds (15 seconds in this case)
    existingWorkPolicy:
        **ExistingWorkPolicy.append,** // Append new tasks to existing ones
  );

相关问题