即使该应用已关闭,我也需要每天在后台调用一个API。我已经了解了WorkManager API。对于我的场景,我尝试了PeriodicWorkRequest,但不幸的是,它没有按预期效果工作。我所做的是我在Application类中使用了此代码
PeriodicWorkRequest.Builder myWorkBuilder =
new PeriodicWorkRequest.Builder(MyWorker.class, 24,
TimeUnit.HOURS);
PeriodicWorkRequest myWork = myWorkBuilder.build();
WorkManager.getInstance().enqueue(myWork);
但是,当应用程序首次打开后,它会重复运行11次,直到24小时后才运行。拜托,任何人,请帮助我解决。
最佳答案
如果要确保未多次创建PeriodicWorkRequest
,可以使用 WorkManager.enqueueUniquePeriodicWork
方法来安排您的工作人员:
例如:
PeriodicWorkRequest.Builder myWorkBuilder =
new PeriodicWorkRequest.Builder(MyWorker.class, 24, TimeUnit.HOURS);
PeriodicWorkRequest myWork = myWorkBuilder.build();
WorkManager.getInstance()
.enqueueUniquePeriodicWork("jobTag", ExistingPeriodicWorkPolicy.KEEP, myWork);
关于android - Android WorkManager API,用于在后台运行日常任务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50415756/