我是在日本使用颤振的软件工程师。
开发一个闹钟应用程序,它能在早上叫醒我,并且在执行以下内容时遇到了困难。
如果你能帮我,我会很感激的。
问题.
我想知道是否有一种方式来执行一个特定的进程在一个预定的时间,即使应用程序被杀死或backGround。
Details。
我目前正在开发一个报警应用程序,在指定的时间发送本地通知&定制音乐。
我能够安排本地通知在指定的时间发送。
但是,我无法找到在后台同时运行特定进程的方法。
(这是一个播放用户选择的特定音乐的过程的图像)
我发现了什么,
确认可以使用通知在指定的日期和每周指定的时间发送通知。
(执行flutterLocalNotificationsPlugin#zonedSchedule())
但是,在flutter_local_notifications中,不存在侦听器来接收通知本身。
(有一个onSelectNotification,但是它不能工作直到用户点击通知栏。)
图书馆的作者说没有侦听器可以触发这样的通知时间,
因此,我决定只在这个库中使用本地通知,并寻找另一个库来替换后台处理。
我发现获取和WorkManager特别有用,但我也放弃了使用这些库。
原因是,由于iOS的限制,两个库只能在15分钟内执行,如下所示,而且我怀疑进程不能在预定的时间内执行。
workManagaer
https://pub.dev/packages/workmanager#customisation-android-only
// Periodic task registration
Workmanager().registerPeriodicTask(
"2",
"simplePeriodicTask",
// When no frequency is provided the default 15 minutes is set.
// Minimum frequency is 15 min. Android will automatically change your frequency to 15 min if you have configured a lower frequency.
If you have configured a lower frequency. frequency: Duration(hours: 1),
)background_fetch
Background Fetch is a very simple plugin which will awaken an app in the background about every 15 minutes, providing a short period of background running-time. This plugin will execute your provided callbackFn whenever a background-fetch event occurs.我认为唯一的方法是使用MethodChannel为每个操作系统编写和执行本机代码。
我想知道是否有一种方法可以在指定的时间执行预定的进程,即使应用程序处于杀死状态或处于颤振状态,即使它使用MethodChannel。
抱歉太久了。请让我知道。
非常感谢
发布于 2021-12-21 14:08:03
唯一为后台过程提供的文档(警报是引用的例子之一)指出了关于媒体的一篇文章:https://docs.flutter.dev/development/packages-and-plugins/background-processes
https://stackoverflow.com/questions/70436554
复制相似问题