我的应用中有多个 JobServices。根据 Android 文档,每个 JobService 的 JobId 每个 uid 必须是唯一的。为了避免冲突,我使用唯一的字符串哈希码作为我的 JobId。这也可能导致负 JobId。这是生成 JobIds 的正确方法吗?
问问题
1177 次
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 回答