gpt4 book ai didi

flutter - 如何在flutter IOS中每15分钟在后台运行一次workmanager

转载 作者:行者123 更新时间:2023-12-04 11:30:20 30 4
gpt4 key购买 nike

我正在为我的项目添加一个 workmanager flutter。现在它在Android系统上完美运行如下:

const fetchBackground = "fetchBackground";

void callbackDispatcher() {
Workmanager.executeTask((task, inputData) async {
switch (task) {
case fetchBackground:
Position userLocation = await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
notif.Notification notification = new notif.Notification();
notification.showNotificationWithoutSound(userLocation);
break;
}
return Future.value(true);
});
}



void main() => runApp(MyApp());

class MyApp extends StatelessWidget {

@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(

primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);

final String title;

@override
_MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

@override
void initState() {
super.initState();

Workmanager.initialize(
callbackDispatcher,
isInDebugMode: true,
);


Workmanager.registerPeriodicTask(
"1",
fetchBackground,
frequency: Duration(minutes: 15),
);
}



所以现在每 15 分钟,应用程序将在下面的后台运行,并向用户发送一个完美的警报。但是对于 IOS 我不能使用:registerPeriodicTask。
Workmanager.registerPeriodicTask(
"1",
fetchBackground,
frequency: Duration(minutes: 15),
);

在这种情况下,该应用程序在不使用 registerPeriodicTask 的情况下适用于我,但我必须手动运行调试 → 模拟后台获取才能从 XCode 获取警报。那么在iOS和Android中让应用每15分钟在后台运行的解决方案是什么?

最佳答案

因此,您可以使用 ansyns timer 代替此如果应用程序正在运行,无论当前打开什么屏幕,都会在每 15 秒后调用一次。
所以你可以在 main.dart 文件中调用它

Timer timerObj;
timerObj = Timer.periodic(Duration(seconds: 15), (timer) async {
_initData();

}
});

In order to cancel the timer you can call timerObj = null or timerObj.cancel();

关于flutter - 如何在flutter IOS中每15分钟在后台运行一次workmanager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64713457/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com