扑灭后需要在android设备上运行该应用

问题描述

需要在扑灭后将其运行在android设备上。我正在使用background_fetch,当应用程序运行时它可以正常工作。但在终止该应用程序后将无法运行。

 BackgroundFetch.configure(BackgroundFetchConfig(
  minimumFetchInterval: 15,forceAlarmManager: false,stopOnTerminate: false,startOnBoot: true,enableHeadless: true,requiresBatteryNotLow: false,requiresCharging: false,requiresstorageNotLow: false,requiresdeviceidle: false,requiredNetworkType: NetworkType.NONE,),_onBackgroundFetch).then((int status) {
  print('[BackgroundFetch] configure success: $status');
  setState(() {
    _status = status;
  });

}).catchError((e) {
  print('[BackgroundFetch] configure ERROR: $e');
  setState(() {
    _status = e;
  });
});

解决方法

您可以使用Function.call插件。

const myTask = "syncWithTheBackEnd";

void main() {
  Workmanager.initialize(callbackDispatcher);
  Workmanager.registerOneOffTask(
    "1",myTask,//This is the value that will be returned in the callbackDispatcher
    initialDelay: Duration(minutes: 5),constraints: WorkManagerConstraintConfig(
      requiresCharging: true,networkType: NetworkType.connected,),);
  runApp(MyApp());
}

void callbackDispatcher() {
  Workmanager.executeTask((task) {
    switch (task) {
      case myTask:
        print("this method was called from native!");
        break;
      case Workmanager.iOSBackgroundTask:
        print("iOS background fetch delegate ran");
        break;
    }

    //Return true when the task executed successfully or not
    return Future.value(true);
  });
}

完整的文章WorkManager