Я ставлю в очередь от PeriodicWorkRequest
до WorkManager
, упомянутый ниже код работает на устройстве с операционной системой Android OS Nougat, а также на эмуляторах ОС Android версий 8.1, 9 и 10, но не на OnePlus (Android 9), Redmi 5(Android 8.1) и Google Pixel (Android 9.1).
Зависимость, которую я включил,
implementation "android.arch.work:work-runtime:1.0.1" (Non Androidx)
Также
implementation "android.arch.work:work-runtime:2.1.0-beta02" (Androidx)
Фрагмент кода,
PeriodicWorkRequest.Builder builder = new PeriodicWorkRequest.Builder(MyWorker.class,
PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS, TimeUnit.MILLISECONDS)
.addTag(Utils.TAG_WORKER)
.setInputData(createInputData(config));
WorkManager.getInstance(Context).enqueueUniquePeriodicWork(Utils.TAG_WORKER, ExistingPeriodicWorkPolicy.KEEP, builder.build());
private Data createInputData(Config config) {
return new Data.Builder()
.putString(Utils.USER_CONFIG, new Gson().toJson(config))
.putString(Utils.LOCATION_CONFIG, new Gson().toJson(Preferences.getInstance(fragmentActivity).getConfiguration()))
.build();
}
Я много пробовал и искал, любая помощь в отношении будет очень признательна.
Пример реализации: https://db.tt/gFEJi39Ofz
Ссылка для отслеживания проблем Google: https://issuetracker.google.com/issues/135865377