我想要在应用程序关闭的特定时间执行函数。该函数将显示一条通知。
这是我想要执行的函数:
Future<void> dailyNotification() async {
DateTime now= DateTime.now();
Time reviewTime = Time(13, 02, 20 );
DateTime notTime = DateTime(now.year, now.month, now.day, reviewTime.hour, reviewTime.minute, reviewTime.second);
var androidChannelSpecifics = AndroidNotificationDetails(
'CHANNEL_ID 2',
'CHANNEL_NAME 2',
"CHANNEL_DESCRIPTION 2",
importance: Importance.max,
priority: Priority.high,
);
var iosChannelSpecifics = IOSNotificationDetails();
var platformChannelSpecifics =
NotificationDetails(android: androidChannelSpecifics, iOS: iosChannelSpecifics);
await flutterLocalNotificationsPlugin.zonedSchedule(
2,
'Test Title at ${reviewTime.hour}:${reviewTime.minute}.${reviewTime.second}',
'Test Body', //null
notTime,
platformChannelSpecifics,
payload: 'Test Payload',
);
}编辑:
根据Tirth Patel在帖子中的建议,我像这样实现了它:
void callbackDispatcher() {
Workmanager().executeTask((taskName, inputData) async {
notificationPlugin.showDailyAtTime();
return Future.value(true);
});
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Workmanager().initialize(callbackDispatcher);
Workmanager().registerPeriodicTask(
"1",
"simplePeriodicTask",
frequency: Duration(minutes: 15),
);
runApp(MyApp());
}但是,它仍然不起作用。我正在使用flutter本地通知包。
我还不能解决这个问题。
请帮我弄一下这个。
感谢您的回复。
发布于 2021-05-16 13:30:37
一些Android设备制造公司不允许android手机在后台运行,我相信你的设备可能就是其中之一。
解决方案:我们需要在应用程序的设置中启用自动启动,以保持服务运行。(App info -> Auto Start -> Enable)
https://stackoverflow.com/questions/67520914
复制相似问题