无约束地触发 JobService
Firing JobService without constraints
我有一个小问题,在某些设备上,我的没有背景的通知有时不会在 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)
我收到一个错误 "You're trying to build a job with no constraints, this is not allowed"。但我不需要任何约束,这是我发现最有可能始终有效的约束。但实际上始终有效的约束是什么?
如何在没有任何限制的情况下触发 JobService?
我正在使用 .setOverrideDeadline(0)。它基本上会在计划后立即运行作业,我认为它没有任何害处。我认为这是比网络更好的约束,因为它总是令人满意,而用户不可能 100% 的时间都拥有网络。
我没有找到成功设置无约束的方法。
我有一个小问题,在某些设备上,我的没有背景的通知有时不会在 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)
我收到一个错误 "You're trying to build a job with no constraints, this is not allowed"。但我不需要任何约束,这是我发现最有可能始终有效的约束。但实际上始终有效的约束是什么? 如何在没有任何限制的情况下触发 JobService?
我正在使用 .setOverrideDeadline(0)。它基本上会在计划后立即运行作业,我认为它没有任何害处。我认为这是比网络更好的约束,因为它总是令人满意,而用户不可能 100% 的时间都拥有网络。
我没有找到成功设置无约束的方法。