Android - 在特定日期和时间在 Firebase 作业调度程序中运行作业



我正在使用应用程序中的AlarmManager来设置在特定日期和时间设置的闹钟。现在最近很少有我们应用程序的用户抱怨这些警报没有弹出。此外,在Android O指南中,提到应用程序不应运行任何后台服务,而应切换到FirebaseJobDispatcher。我有以下2个问题

  1. 在我们的应用程序中,除了在指定的时间和日期向用户显示通知外,我们不执行任何后台任务。即使在这种情况下,我们也应该切换到FirebaseJobdispatcher
  2. 如果我们确实需要切换到JobDispatcher,如何将作业设置为在确切的特定日期和时间运行?

因为您没有执行任何后台任务,例如网络请求或长时间运行的 CPU 操作,所以我认为您应该继续使用Alarm Manager.

现在最近很少有我们应用程序的用户抱怨这些警报没有弹出。

这是因为当打瞌睡模式触发时,不能保证您的警报会被触发(请参阅此处)。

您可以做的是根据您对 API 级别>= 23 的要求,使用 AlarmManager 类中的setAndAllowWhileIdle()setExactAndAllowWhileIdle()方法。

根据文档,这些适用于通知目的。setAndAllowWhileIdle()文档:

set(int, long, PendingIntent)一样,但此警报将被允许 即使系统处于低功耗空闲模式,也能执行。这种类型的 警报只能用于实际需要的情况 警报在空闲时响起 - 一个合理的例子是 对于应发出声音的日历通知,以便用户 意识到这一点。当警报被调度时,应用程序也会被添加 到系统的临时白名单大约 10 秒 允许该应用程序获取更多唤醒锁,以便在其中 完成其工作。

相关内容

  • 没有找到相关文章

最新更新