为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

鸿蒙传说 2022-06-30 11:18:02
我有一些任务,比如药物提醒。日常提醒计划存储在 SQLite 数据库中。提醒每天都不同。例如21.02.19 - 08:00, 12:00, 19:0022.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 获取时间并及时提醒。
查看完整描述

1 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

几个月前,我也开发了药物提醒应用程序。

我使用“使用android-job在凌晨 0:00 运行日常工作”方法来实现这一点。

在 DailyJob 中,我们有这个过程。

  1. 在 DB 中获取一些时间信息

  2. 将(期望时间 - 现在时间)转换为毫秒。如果现在时间是 00:15AM,而期望时间是 07:00AM,那么它将是 24300000ms。

  3. 在步骤 2 中以转换后的毫秒数运行精确作业。

在 Exact job 中,我们向用户显示通知。

由于隐私,我无法附加代码,但您可以实现相同的目标。


查看完整回答
反对 回复 2022-06-30
  • 1 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号