【问题标题】:Flutter Android Alarm Manager plugin does not work properlyFlutter Android Alarm Manager 插件无法正常工作
【发布时间】:2021-03-03 20:40:16
【问题描述】:

在我的颤振应用程序中,我试图每分钟在后台运行一个函数。我使用了 android 警报管理器插件,当调用 AndroidAlarmManager.periodic 函数时,每分钟都会正确触发 1 分钟间隔警报。但有时函数会在随机延迟后运行。

输出:

I/flutter ( 4130): Alarm Fired at: 16:0:0
I/flutter ( 4130): Alarm Fired at: 16:1:20
I/flutter ( 4130): Alarm Fired at: 16:2:0
I/flutter ( 4130): Alarm Fired at: 16:3:0
I/flutter ( 4130): Alarm Fired at: 16:4:0
I/flutter ( 4130): Alarm Fired at: 16:5:0
I/flutter ( 4130): Alarm Fired at: 16:6:40
I/flutter ( 4130): Alarm Fired at: 16:7:0
I/flutter ( 4130): Alarm Fired at: 16:8:0
I/flutter ( 4130): Alarm Fired at: 16:9:20
I/flutter ( 4130): Alarm Fired at: 16:10:0
I/flutter ( 4130): Alarm Fired at: 16:11:0
I/flutter ( 4130): Alarm Fired at: 16:12:0

我正在使用警报管理器插件版本 0.4.5+17

我尝试将间隔时间增加到 5 分钟和 10 分钟,但仍然出现同样的问题。

我的代码:


void alarmCallback() {
  print(
      'Alarm Fired at: ${DateTime.now().hour}:${DateTime.now().minute}:${DateTime.now().second}');
}

void main() async {
  runApp(MyApp());

  await AndroidAlarmManager.initialize();

  final int alarmId = 1;

  await AndroidAlarmManager.periodic(
    Duration(minutes: 1),
    alarmId,
    alarmCallback,
    exact: true,
  );
}

【问题讨论】:

    标签: android flutter dart alarmmanager


    【解决方案1】:

    恐怕你不会对安卓警报管理器插件有太多的运气。警报会按时调用,但随后会将工作发送到服务,而 android 将在对 android 方便时实际运行该服务。

    我最终编写了自己的 java 代码来安排警报,并且在我的 BroadcastReceiver 中只运行本机 android 代码(没有 dart 代码)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-21
      • 2022-01-13
      • 2022-12-17
      • 1970-01-01
      • 2021-01-22
      • 2021-08-22
      • 2021-05-17
      • 2021-09-04
      相关资源
      最近更新 更多