android - 如何在 Android 8(Oreo) 中每 5 分钟启动一次调度程序,而不会失败 - (尝试过的 Jobscheduler 最小限制为 15 分钟,不可靠)
问题描述
如何准确地每 5 分钟运行一次服务(执行某些任务)而不会失败。我有一个使用 Alarmmanager 的上述要求的工作代码,但由于我试图以 Android 8(Oreo)为目标,所以它失败了。
- 是否有可能实现我的针对奥利奥的用例?
解决方案
Android中有很多东西放在一起时,它们不会按预期工作。新的 WorkManager API 解决了您面临的问题。来自官方文档:
WorkManager 根据设备 API 级别和应用程序状态等因素选择适当的方式来运行您的任务。如果 WorkManager 在应用程序运行时执行您的任务之一,WorkManager 可以在应用程序进程的新线程中运行您的任务。如果您的应用程序未运行,WorkManager 会选择适当的方式来安排后台任务 - 根据设备 API 级别和包含的依赖项,WorkManager 可能会使用 JobScheduler、Firebase JobDispatcher 或 AlarmManager。
因此,WorkManager 将根据各种因素来处理要运行的内容,并使一切变得更容易和更清洁。
对于您的方案,您可以使用重复任务:
https://developer.android.com/topic/libraries/architecture/workmanager#recurring
推荐阅读
- fullcalendar - 完整的日历 IO 将列实现为单日视图
- r - 日期轴上缺少自定义中断和标签
- d3.js - d3.js 在文本属性中使用条件返回
- sql - 在 Big Query 中使用通配符查询按日期计算数据集中的记录数
- python - 如何通过图书馆电视节目在电报中搜索频道?
- javascript - 如何将一段css、html和js从一个静态模板复制到另一个?
- glassfish - GlassFish 服务器错误类 File.MikTex 未找到
- vuejs2 - vue.js 将插值传递给属性(类)绑定的方法
- blockchain - Hypelerdger Indy Node - 种子价值
- reactjs - 在 ThemeProvider 上更新主题道具时如何防止渲染组件