首页 > 解决方案 > 如何在 Android 8(Oreo) 中每 5 分钟启动一次调度程序,而不会失败 - (尝试过的 Jobscheduler 最小限制为 15 分钟,不可靠)

问题描述

如何准确地每 5 分钟运行一次服务(执行某些任务)而不会失败。我有一个使用 Alarmmanager 的上述要求的工作代码,但由于我试图以 Android 8(Oreo)为目标,所以它失败了。

标签: androidalarmmanagerandroid-8.0-oreoandroid-jobscheduler

解决方案


Android中有很多东西放在一起时,它们不会按预期工作。新的 WorkManager API 解决了您面临的问题。来自官方文档:

WorkManager 根据设备 API 级别和应用程序状态等因素选择适当的方式来运行您的任务。如果 WorkManager 在应用程序运行时执行您的任务之一,WorkManager 可以在应用程序进程的新线程中运行您的任务。如果您的应用程序未运行,WorkManager 会选择适当的方式来安排后台任务 - 根据设备 API 级别和包含的依赖项,WorkManager 可能会使用 JobScheduler、Firebase JobDispatcher 或 AlarmManager。

因此,WorkManager 将根据各种因素来处理要运行的内容,并使一切变得更容易和更清洁。

对于您的方案,您可以使用重复任务:

https://developer.android.com/topic/libraries/architecture/workmanager#recurring


推荐阅读