为Android Jobscheduler服务生成JobId

时间:2018-07-12 12:43:25

标签: android android-jobscheduler hash-code-uniqueness

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

1 个答案:

答案 0 :(得分:0)

好吧,做这件事的一种方法,也许是唯一的方法(如果您想要完整的自动数字而不使用以前的数字的arrayList)是使用静态字段。因此,使用此技术,您将:

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上也可以。