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