为Android Jobscheduler服务生成JobId

问题描述 投票:0回答:1

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

android android-jobscheduler hash-code-uniqueness
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就可以这样做,如果你更简单地在他们的onStartJob上调用MyJobService.jobIb++;你也没关系。

© www.soinside.com 2019 - 2024. All rights reserved.