WorkManager 应该初始化一次还是可以在每次应用启动时将 onCreate 中的工作排入队列?
PeriodicWorkRequest request = new PeriodicWorkRequest.Builder(MyWorker.class,30, TimeUnit.MINUTES).addTag("myWorkertag").build();
WorkManager workManager = WorkManager.getInstance(context);
workManager.enqueue(request);
答案 0 :(得分:1)
这样做会在您每次活动开始时添加一个新的工作请求,这可能不是您想要的定期工作。
您可以使用 WorkManager.enqueueUniquePeriodicWork(...)
,它允许您使用唯一名称排队工作,其中一次只能激活一个具有该名称的请求。它还允许您通过 existingPeriodicWorkPolicy
参数指定是替换还是保留现有工作。