如何在后台 运行 flutter 方法?
how to run flutter methods in background?
我试图连续调用该方法,但是当我锁定 phone 的屏幕或按下主页按钮时,该方法不会再次被调用。所以请建议如何在后台运行方法。
您必须使用 https://pub.dev/packages/background_fetch
等插件
您可以尝试其他类似的插件。
“Background Fetch 是一个非常简单的插件,大约每 15 分钟就会在后台唤醒一个应用程序,提供短时间的后台 running-time。只要 [=18],此插件就会执行您提供的 callbackFn =] 事件发生。"
您将为 android 个使用 Flutter 的应用程序使用 android 闹钟管理器
https://pub.dev/packages/android_alarm_manager
import 'package:android_alarm_manager/android_alarm_manager.dart';
void printHello() {
final DateTime now = DateTime.now();
final int isolateId = Isolate.current.hashCode;
print("[$now] Hello, world! isolate=${isolateId} function='$printHello'");
}
main() async {
final int helloAlarmID = 0;
await AndroidAlarmManager.initialize();
runApp(...);
await AndroidAlarmManager.periodic(const Duration(minutes: 1), helloAlarmID, printHello);
}
如你所见,很简单,你只需要创建一个函数并使用 AndroidAlarmManager.periodic 调用它,记得在你的 android 清单上添加权限。
如果您需要 Android 和 iOS 的解决方案,您可以使用平台渠道 https://flutter.dev/docs/development/platform-integration/platform-channels
您可以使用平台通道从 android 和 iOS 调用本机代码,例如您可以创建本机后台服务并从 Flutter 调用它。
我试图连续调用该方法,但是当我锁定 phone 的屏幕或按下主页按钮时,该方法不会再次被调用。所以请建议如何在后台运行方法。
您必须使用 https://pub.dev/packages/background_fetch
等插件您可以尝试其他类似的插件。
“Background Fetch 是一个非常简单的插件,大约每 15 分钟就会在后台唤醒一个应用程序,提供短时间的后台 running-time。只要 [=18],此插件就会执行您提供的 callbackFn =] 事件发生。"
您将为 android 个使用 Flutter 的应用程序使用 android 闹钟管理器
https://pub.dev/packages/android_alarm_manager
import 'package:android_alarm_manager/android_alarm_manager.dart';
void printHello() {
final DateTime now = DateTime.now();
final int isolateId = Isolate.current.hashCode;
print("[$now] Hello, world! isolate=${isolateId} function='$printHello'");
}
main() async {
final int helloAlarmID = 0;
await AndroidAlarmManager.initialize();
runApp(...);
await AndroidAlarmManager.periodic(const Duration(minutes: 1), helloAlarmID, printHello);
}
如你所见,很简单,你只需要创建一个函数并使用 AndroidAlarmManager.periodic 调用它,记得在你的 android 清单上添加权限。
如果您需要 Android 和 iOS 的解决方案,您可以使用平台渠道 https://flutter.dev/docs/development/platform-integration/platform-channels 您可以使用平台通道从 android 和 iOS 调用本机代码,例如您可以创建本机后台服务并从 Flutter 调用它。