在某些设备上,我的无背景通知有时在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?
我正在使用.setOverrideDeadline(0)。它基本上可以按计划运行作业,我认为其中没有任何危害。我认为这是比网络更好的约束,因为它总是可以满足,而用户不可能100%地拥有网络。
我没有找到成功设置任何约束的方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句