Flutter android_alarm_manager插件不会定期运行
我试图在Flutter中创建后台计时器,每n秒调用一次。调用AndroidAlarmManager.periodic应该每2秒运行一次printHello函数,但是看起来它是以更大的间隔随机调用的。我在做什么错?
import 'package:android_alarm_manager/android_alarm_manager.dart';void runTimer() async{
await AndroidAlarmManager.periodic(const Duration(seconds: 2), 0, printHello, exact: true);
}
void printHello(){
print("Hello");
}
main() async {
await AndroidAlarmManager.initialize();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: Scaffold(
body: Center(
child: InkWell(onTap: runTimer,
child: Container(child: Text('Run Timer'))),
),
),
);
}
}
回答:
您无法通过以下时间安排警报AlarmManager
:
注意:从API
19(Build.VERSION_CODES.KITKAT)开始,警报传递是不精确的:操作系统将转移警报,以最大程度地减少唤醒和电池消耗。有一些新的API支持需要严格交付保证的应用程序。请参见setWindow(int,long,long,android.app.PendingIntent)和setExact(int,long,android.app.PendingIntent)。targetSdkVersion早于API
19的应用程序将继续看到以前的行为,在该行为中,所有警报均在请求时准确传递。
请参阅:https://developer.android.com/reference/android/app/AlarmManager
以上是 Flutter android_alarm_manager插件不会定期运行 的全部内容, 来源链接: utcz.com/qa/425548.html