gpt4 book ai didi

android - WorkManager 2.3.4 - 新的 lint 规则

转载 作者:行者123 更新时间:2023-12-03 09:41:30 46 4
gpt4 key购买 nike

我将 WorkManager 的版本增加到 2.3.4,并且有一个名为 SpecifyJobSchedulerIdRange 的新 lint 规则带有描述:“当应用程序使用 JobService 但未为 WorkManager 指定 jobIds 时发出警告。”和解释:

When using JobScheduler APIs directly, WorkManager requires that developers specify a range of JobScheduler ids that are safe for WorkManager to use so the ids do not collide. For more information look at androidx.work.Configuration.Builder.setJobSchedulerJobIdRange(int, int).



我指定了 WorkManager 可以通过函数 setJobSchedulerJobIdRange 使用的 ID 范围,但我仍然收到该 lint 警告。奇怪的是,我的自定义 JobService 而不是 Configuration.Builder 收到了 lint 警告。

在我的应用程序类中:
override fun getWorkManagerConfiguration(): Configuration {
return Configuration.Builder()
.setWorkerFactory(workerFactory)
.setJobSchedulerJobIdRange(100000, 101000)
.build()
}

最佳答案

我也遇到了这个问题,并花了一些时间在这里查看 lint 问题的代码,https://android.googlesource.com/platform/frameworks/support/+/androidx-master-dev/work/workmanager-lint/src/main/java/androidx/work/lint/SpecifyJobSchedulerIdRangeIssueDetector.kt
如果我没记错的话,lint 检查会查找所有扩展 JobService 的类,然后确保这些类中至少有 1 个调用 androidx.work.Configuration.Builder.setJobSchedulerJobIdRange
我更新了 JobService 的 1 扩展,以将配置作为静态方法提供给我的应用程序类,这解决了 lint 问题。
我不确定它是否真的是一个 lint 问题 - 必须在 JobService 类中声明工作管理器的配置似乎很奇怪,特别是当它的 Application 类需要它时,但也许这就是他们的重点?确保使用 Job Ids 的类(class)为每个人都设置了它?

关于android - WorkManager 2.3.4 - 新的 lint 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61629859/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com