在某些设备上,我的无背景通知有时在android O(特别是在小米)上不触发时,我遇到了一个小问题。我正在使用Awareness 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?
答案 0 :(得分:7)
我正在使用.setOverrideDeadline(0)。它基本上可以按计划运行该作业,我认为其中没有任何危害。我认为这是比网络更好的约束,因为它总是可以满足,而用户不可能100%地拥有网络。
我找不到成功设置任何约束的方法。