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

