我正在使用作业调度程序服务安排作业。我的工作开始的条件是任何network(setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY))
. 第一次,我从用户输入(比如:点击一个按钮)安排一个工作,所以当用户点击这个按钮时,一旦网络可用,我的工作就会开始。
我的问题是,我的工作应该在没有用户输入的情况下开始。这可能吗?如果是,请建议。
(我不想监听网络变化监听器。因为它从 Android N 开始有一些限制)
我正在使用作业调度程序服务安排作业。我的工作开始的条件是任何network(setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY))
. 第一次,我从用户输入(比如:点击一个按钮)安排一个工作,所以当用户点击这个按钮时,一旦网络可用,我的工作就会开始。
我的问题是,我的工作应该在没有用户输入的情况下开始。这可能吗?如果是,请建议。
(我不想监听网络变化监听器。因为它从 Android N 开始有一些限制)
是的,您可以在构建器中设置
设置退避标准
每当计划的作业因为不满足约束而停止时,它都会继续尝试。
builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
builder.setPeriodic(TimeUnit.DAYS.toMillis(1));
builder.setBackoffCriteria(1000, JobInfo.BACKOFF_POLICY_EXPONENTIAL);
是的,这可以通过 JobInfo.Builder 来查看https://developer.android.com/reference/android/app/job/JobInfo.Builder.html#setMinimumLatency(long)