【发布时间】:2021-02-13 14:55:06
【问题描述】:
我创建了每 15 秒检查一次通话记录列表的应用。我已经使用 Timer.periodic() 来实现这一点。一切正常,但前提是应用程序不在后台运行。应用程序在后台运行几分钟后,由 Timer.periodic 安排的任务不再执行。我曾尝试使用 android_alarm_manager https://pub.dev/packages/android_alarm_manager 但它根本不起作用。它正在记录 /FlutterBackgroundExecutor(11431): Starting AlarmService... 但是什么也没发生。
import 'dart:isolate';
import 'package:flutter/material.dart';
import 'package:android_alarm_manager/android_alarm_manager.dart';
void main() async{
await WidgetsFlutterBinding.ensureInitialized();
await AndroidAlarmManager.initialize();
runApp(MyApp());
final int helloAlarmID = 0;
await AndroidAlarmManager.periodic(Duration(seconds: 5), helloAlarmID, printHello);
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}
void printHello() {
final DateTime now = DateTime.now();
final int isolateId = Isolate.current.hashCode;
print("[$now] Hello, world! isolate=${isolateId} function='$printHello'");
}
我还有其他实现目标的可能性吗?
【问题讨论】:
标签: flutter dart android-alarms