В настоящее время я использую WorkManager 1.0.0-alpha02.
def work_version = "1.0.0-alpha02"
implementation "android.arch.work:work-runtime:$work_version" // use -ktx for Kotlin
// optional - Firebase JobDispatcher support
implementation "android.arch.work:work-firebase:$work_version"
У меня нет проблем с запуском фонового рабочего, используя следующий код, когда приложение закрывается.
Используйте enqueue, работайте как ожидалось
OneTimeWorkRequest oneTimeWorkRequest =
new OneTimeWorkRequest.Builder(SyncWorker.class)
.addTag(SyncWorker.TAG)
.build();
WorkManager workManager = WorkManager.getInstance();
workManager.enqueue(oneTimeWorkRequest);
Поскольку я бы хотел, чтобы одновременно выполнялось не более одного SyncWorker
. Я пытаюсь использовать
Используйте beginUniqueWork, не работает
OneTimeWorkRequest oneTimeWorkRequest =
new OneTimeWorkRequest.Builder(SyncWorker.class)
.addTag(SyncWorker.TAG)
.build();
WorkManager workManager = WorkManager.getInstance();
workManager.beginUniqueWork(
SyncWorker.TAG,
ExistingWorkPolicy.REPLACE,
oneTimeWorkRequest
);
SyncWorker
вообще не работает.
Могу ли я узнать, какой шаг я пропустил? Спасибо.