如何在最新的安卓手机上运行后台工作,如闹钟

我有一些任务,比如药物提醒。日常提醒计划存储在 SQLite 数据库中。提醒每天都不同。

例如

21.02.19 - 08:00, 12:00, 19:00

22.02.19 - 08:30, 12:30, 19:30

...

最低安卓 4.4 (Api 19) 目标安卓 9.0 (Api 28)

我读到了 WorkManager、JobScheduler、JobIntentService、FirebaseJobDispathcer、Alarm manager。有很多 API 可以做到这一点。

首先,我尝试使用警报管理器每分钟检查一次时间间隔。但它在最新的 android 中无法正常工作。有后台限制,打盹模式和待机。然后我尝试了 JobScheduler,但它不适用于 21 API 下的设备。而 FirebaseJobDispatcher 需要 google play 服务,这不是一个好主意。最后,我找到了 WorkManager。但是在 workmanager 和 jobscheduler 中的最小间隔为 15 分钟。

如何让后台服务每天在特定的准确时间提醒用户?我没有使用互联网、GPS、位置。仅从 SQLite 获取时间并及时提醒。


鸿蒙传说
浏览 140回答 1
1回答

GCT1015

几个月前,我也开发了药物提醒应用程序。我使用“使用android-job在凌晨 0:00 运行日常工作”方法来实现这一点。在 DailyJob 中,我们有这个过程。在 DB 中获取一些时间信息将(期望时间 - 现在时间)转换为毫秒。如果现在时间是 00:15AM,而期望时间是 07:00AM,那么它将是 24300000ms。在步骤 2 中以转换后的毫秒数运行精确作业。在 Exact job 中,我们向用户显示通知。由于隐私,我无法附加代码,但您可以实现相同的目标。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java