问题描述
我想在特定时间但应用程序关闭时执行一个函数。该函数将显示通知。
这是我要执行的函数:
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());
}
但是还是不行。我正在使用颤振本地通知包。
我还无法解决这个问题。
请帮我解决这个问题。
感谢您的回复。
解决方法
某些 Android 设备制造公司不允许 Android 手机在后台运行,我相信您的设备可能是其中之一。
解决方案:我们需要在应用设置中启用自动启动以保持服务运行。 (应用信息 -> 自动启动 -> 启用)