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