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

回到顶部