繁体   English   中英

我如何在最新的Android手机上运行后台工作(如闹钟)

[英]How can I run background work like alarm on latest android phones

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

例如

19.02.19-08:00,12:00,19:00

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

...

最低android 4.4(Api 19)目标android 9.0(Api 28)

我阅读了有关WorkManager,JobScheduler,JobIntentService,FirebaseJobDispathcer,警报管理器的信息。 有很多API可以做到这一点。

首先,我尝试使用警报管理器每分钟检查一次时间。 但在最新的android系统中无法正常工作。 有背景限制,打ze模式和待机状态。 然后,我尝试了JobScheduler,但它在21 API下无法正常工作。 而且FirebaseJobDispatcher需要Google Play服务,这不是一个好主意。 最后,找到WorkManager。 但是在工作经理和工作计划者中,最小间隔为15分钟。

如何进行后台服务,以每天的确切时间提醒用户? 我没有使用互联网,GPS和位置信息。 仅从SQLite获取时间并提醒准确时间。

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

我使用“使用android-job在0:00 AM运行日常工作 ”方法来实现此目的。

在DailyJob中,我们有此过程。

  1. 在数据库中获取一些时间信息
  2. 将(所需时间-现在时间)转换为毫秒。 如果现在时间是00:15 AM并且期望时间是07:00 AM,那么它将是24300000ms。
  3. 在步骤2中以转换后的毫秒数运行确切的作业。

在“确切的工作”中,我们向用户显示通知。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM