在 onCreate() 中使用 WorkManager 排队工作是否可以?

时间:2021-03-25 20:20:03

标签: android android-workmanager

WorkManager 应该初始化一次还是可以在每次应用启动时将 onCreate 中的工作排入队列?

PeriodicWorkRequest request = new PeriodicWorkRequest.Builder(MyWorker.class,30, TimeUnit.MINUTES).addTag("myWorkertag").build();
WorkManager workManager = WorkManager.getInstance(context);
workManager.enqueue(request);

1 个答案:

答案 0 :(得分:1)

这样做会在您每次活动开始时添加一个新的工作请求,这可能不是您想要的定期工作。

您可以使用 WorkManager.enqueueUniquePeriodicWork(...),它允许您使用唯一名称排队工作,其中一次只能激活一个具有该名称的请求。它还允许您通过 existingPeriodicWorkPolicy 参数指定是替换还是保留现有工作。