【发布时间】:2018-12-13 07:04:08
【问题描述】:
正在使用 androidx 工作管理器 API,在工作管理器中使用 PeriodicWorkRequest 每 4 小时触发一次工作。但它只在运行应用程序后工作一次。
PeriodicWorkRequest 编码:-
Constraints constraints = new Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build();
PeriodicWorkRequestpendingCampaignWork = new PeriodicWorkRequest.Builder(PendingCampaignWorker.class, 4, TimeUnit.HOURS)
.setConstraints(constraints)
.build();
将请求排队的工作管理器代码:-
WorkManager.getInstance().enqueueUniquePeriodicWork(LATEST_CAMPAIGN_WORK, ExistingPeriodicWorkPolicy.KEEP, pendingCampaignWork);
为了测试,将系统时间手动更改为在模拟器中运行应用程序以触发工作后的 4 小时。
我的代码中是否有任何问题帮助我解决问题。
更新:-
工作管理器工作正常,它不能像 m.hassan 在回答部分所说的那样根据系统时间工作。我测试每 20 分钟触发一次工作,它工作正常。
【问题讨论】:
标签: android android-jetpack android-workmanager