即使该应用已关闭,我也需要每天在后台调用一个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/

10-13 02:58