gpt4 book ai didi

java - 如何修复 "specify a valid range of job id' 以供 WorkManager 使用”

转载 作者:行者123 更新时间:2023-12-04 08:21:51 27 4
gpt4 key购买 nike

我已扩展 JobService像这样:

public class MyJobService extends JobService {

@Override
public boolean onStartJob(JobParameters params) {
return false;
}

@Override
public boolean onStopJob(JobParameters params) {
return false;
}
}
整个类(class)代码以黄色突出显示。
警告说:

Specify a valid range of job id's for WorkManager to use.


我做错了什么,我该怎么办?

最佳答案

警告表明,只要执行 JobService创建类,然后用户应指定 WorkManager 的 ID。有资格使用“为了不与您的应用程序的其余部分中使用的工作代码发生冲突”(参见 setJobSchedulerJobIdRange(int, int) 的 dosc)。
这应该在创建 androidx.work.Configuration 时完成实例:

Configuration.Builder builder = new Configuration.Builder();
builder.setJobSchedulerJobIdRange(0, 1000);
...
不幸的是,我无法让这个东西适用于我的设置,我不得不查看 lint 的来源 ( SpecifyJobSchedulerIdRangeIssueDetector )。从逻辑上我可以理解,只要有一个
方法调用 setJobSchedulerJobIdRange (见行 92 ) - 然后检测器将假定用户已指定作业范围 id,但这不起作用(至少在我的机器上)。
不幸的是,检查 test class因为探测器也没有传达任何信息。
至于现在,我可以声称:
  • 创建一个扩展 JobService 的 kotlin 类导致 lint 警告
  • 创建一个扩展 JobService 的 java 类导致 lint 警告,但即使 setJobSchedulerJobIdRange()JobService 以外的其他类中执行

  • 有趣的是,调用 setJobSchedulerJobIdRange()JobService类修复了警告:
    enter image description here
    显然,此检测器实现(或在我的机器上)存在一些问题。
    不过,如果您指定了 WorkManager 可以免费使用的 ID 范围(即您已调用 setJobSchedulerJobIdRange() ) - 那么您最好抑制此警告。

    关于java - 如何修复 "specify a valid range of job id' 以供 WorkManager 使用”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65458638/

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