Android作业调度器:在数据网络存在时执行作业

Android作业调度器:在数据网络存在时执行作业,android,android-jobscheduler,Android,Android Jobscheduler,我正在使用作业计划程序服务计划作业。我的作业开始的条件是任何网络可用(setRequiredNetworkType(JobInfo.network\u TYPE\u any))。 第一次,我根据用户输入(比如:单击按钮)安排作业,所以当用户单击按钮时,一旦网络可用,我的作业将启动 我的问题是,我的工作应该在没有用户输入的情况下启动。这可能吗?如果是,请建议 (我不想侦听网络更改侦听器。因为从Android N开始,它有一些限制)是的,这在JobInfo.Builder中是可能的。请查看 并且可以

我正在使用作业计划程序服务计划作业。我的作业开始的条件是任何
网络可用(setRequiredNetworkType(JobInfo.network\u TYPE\u any))
。 第一次,我根据用户输入(比如:单击按钮)安排作业,所以当用户单击按钮时,一旦网络可用,我的作业将启动

我的问题是,我的工作应该在没有用户输入的情况下启动。这可能吗?如果是,请建议


(我不想侦听网络更改侦听器。因为从Android N开始,它有一些限制)

是的,这在JobInfo.Builder中是可能的。请查看


并且可以与

结合使用是的,这在JobInfo中是可能的。Builder查看


并且可以与

结合使用。是的,您可以在builder中设置

退让标准

每当计划的作业因不满足约束而停止时,它将继续尝试

    builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
    builder.setPeriodic(TimeUnit.DAYS.toMillis(1));
    builder.setBackoffCriteria(1000, JobInfo.BACKOFF_POLICY_EXPONENTIAL);

是的,您可以在生成器中设置

退让标准

每当计划的作业因不满足约束而停止时,它将继续尝试

    builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
    builder.setPeriodic(TimeUnit.DAYS.toMillis(1));
    builder.setBackoffCriteria(1000, JobInfo.BACKOFF_POLICY_EXPONENTIAL);

据我所知,setPeriodic将在特定时间后执行工作,而不是在网络可用时立即执行。我需要在网络可用时立即执行任务。将其与setMinimumLatency(long minLatencyMillis)结合使用如何?这是执行任务之前必须经过的最短时间。我想只要没有网络,它就不会被执行。一旦网络恢复,并且分钟时间已经过去,它将执行它吗?然后在jobFinished中重新安排它?在网络可用时更新特定任务的任何更新!。。。据我所知,setPeriodic将在特定时间后执行工作,而不是在网络可用时立即执行。我需要在网络可用时立即执行任务。将其与setMinimumLatency(long minLatencyMillis)结合使用如何?这是执行任务之前必须经过的最短时间。我想只要没有网络,它就不会被执行。一旦网络恢复,并且分钟时间已经过去,它将执行它吗?然后在jobFinished中重新安排它?在网络可用时更新特定任务的任何更新!。。。