不受限制地触发JobService

暗淡

在某些设备上,我的无背景通知有时在android O(特别是在小米)上不触发时,我遇到了小问题。我正在使用Awareness API,该API从BroadcastReceiver接收数据。所以...我想做的是将通知放入JobService,也许会得到其中一些处理时间,然后这样调用:

PersistableBundle bundle = new PersistableBundle();
            bundle.putString("KEY1", "Test");

            JobInfo job = new JobInfo.Builder(0, new ComponentName(context, AppNotification.class))
                    .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
                    .setExtras(bundle)
                    .build();

            JobScheduler jobScheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
            jobScheduler.schedule(job);

但是当我没有运行它

.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)

我收到一条错误消息“您正在尝试建立没有限制的作业,这是不允许的”。但是我不需要任何约束,这是我发现最有可能一直工作的约束。但实际上始终有效的约束是什么?如何在没有任何约束的情况下启动JobService?

戴维·斯特里加(David Strioga)

我正在使用.setOverrideDeadline(0)。它基本上可以按计划运行作业,我认为其中没有任何危害。我认为这是比网络更好的约束,因为它总是可以满足,而用户不可能100%地拥有网络。

我没有找到成功设置任何约束的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章