我使用Firebase JobDispatcher设置了一个Job:
FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(context));
Job myJob = dispatcher.newJobBuilder()
.setService(EclipseLauncher.class)
.setTag(JOB_TAG)
.addConstraint(Constraint.ON_ANY_NETWORK)
.addConstraint(Constraint.DEVICE_IDLE)
.setLifetime(Lifetime.FOREVER)
.setReplaceCurrent(true)
.setTrigger(Trigger.executionWindow(5,9999999))
.build();
我想要的是,只有当设备连接到网络(WIFI或3-4G)且设备的屏幕关闭时才能执行此作业。
但是这里的空闲约束似乎完全被忽略了。有时,作业将在应用程序运行时启动,并始终在应用程序进入后台时启动。
更糟糕的是,如果我将触发器设置为Trigger.NOW
或者如果我没有设置任何触发器,则该作业立即启动。
我是否误解了空闲的意思?