android - Periodicworkrequest 在较新版本的android中不起作用
问题描述
我无法在 16 分钟内调用一次定期工作。它仅在我在设备中运行应用程序时调用。如果我做错了,请检查下面的代码。我使用的是一加 7t 设备。
范围:我试图在 16 分钟内将房间数据库中存在的数据上传到服务器一次。
val constraints = Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build()
val repeatingRequest = PeriodicWorkRequestBuilder<RefreshDataWorker>(16, TimeUnit.MINUTES)
.setConstraints(constraints)
.build()
WorkManager.getInstance().//enqueue(repeatingRequest)
enqueueUniquePeriodicWork(
RefreshDataWorker.WORK_NAME,
ExistingPeriodicWorkPolicy.KEEP,
repeatingRequest)
和依赖
implementation "androidx.work:work-runtime-ktx:2.3.4"
解决方案
它不工作的原因是,定期工作的最小间隔为 15 分钟。
使用警报管理器的更好建议。因为我发现 PeriodicWorkRequest 在某些设备和相应的 android 版本中不起作用。
作为参考,您可以访问开发者网站:https ://developer.android.com/reference/androidx/work/PeriodicWorkRequest#min_periodic_interval_millis
推荐阅读
- python - 是否有任何新方法可以在 python 中的图像上编写 RTL(阿拉伯语等)文本
- python - 为什么在尝试使用 selenium webdriver 抓取数据时出现此错误(IndentationError:意外缩进)?
- python - 为什么翻译矩阵不影响python中3d模型的渲染?
- ajax - AWS API 网关确实运行良好,但我无法在 javascript AJAX 上运行它
- java - 通话结束后,TelephonyManager 通话状态仍设置为 CALL_STATE_RINGING
- swift - 如何使用货币 NumberFormatter 格式化负 0
- python - sklearn 线性回归似乎不适合
- java - 重命名由应用程序在 android 10 中创建的 Mediastore 文件。在 Android API 30 上工作,但在 API 29 中显示错误
- mysql - Mysql查询返回每个元素的最新结果
- powershell - 使用 Powershell 压缩文件