0

我的应用中有多个 JobServices。根据 Android 文档,每个 JobService 的 JobId 每个 uid 必须是唯一的。为了避免冲突,我使用唯一的字符串哈希码作为我的 JobId。这也可能导致负 JobId。这是生成 JobIds 的正确方法吗?

4

1 回答 1

0

好的,这样做的一种方法,也许是唯一的方法(如果你想要完整的自动数字而不使用先前数字的数组列表)是使用静态字段。所以使用这种技术你将拥有:

public class MyJobService extends JobService {
    public static int jobIb = 0;
...

    public boolean onStartJob(JobParameters jobParameters) {
        jobIb++;

现在每次创建工作信息时只需使用:

new JobInfo.Builder(MyJobService.jobIb,componentName).setExtras(bundle).setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY).build()

因此,如果您只有一种类型的 JobService,这就是执行此操作的方法,如果您更简单地调用MyJobService.jobIb++; 他们的 onStartJob,那么您会没事的。

于 2019-03-24T07:17:27.930 回答