android - 无约束地触发 JobService

标签 android jobservice

我有一个小问题,在某些设备上,我的没有背景的通知有时不会在 android O 上触发(特别是在小米上)。我正在使用从 BroadcastReceiver 接收数据的 Awareness API。所以...我想做的是将我的通知放在 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% 的时间都拥有网络。

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

关于android - 无约束地触发 JobService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51064731/

相关文章:

android - Android O 中的 OnTaskRemoved

android - JobService 不会在 android 9 中重新安排

java - 如何从扩展 JobService 的类中调用以 View 作为参数的 MainActivity 方法?

android - 如何以编程方式更改飞行模式?

Android Wear 没有为圆形屏幕上的自定义表盘显示正确的布局

android - Play 商店国家/地区分布(发布)

android - 没有这样的服务 ComponentInfo Android JobScheduler

android - 用于 html-android 的 FFmpeg mp4 编码器

android - 这是通过 onActivityResult 从设备管理员获取响应的正确方法吗