Мне нужно инициализировать WorkerManager не только один раз, потому что во время выполнения некоторые аргументы могут измениться (WorkerFactory ()). Поэтому мне нужно вызвать
val configuration = Configuration.Builder()
.setWorkerFactory(aggregatingWorkerFactory)
.build()
WorkManager.initialize(context!!, configuration)
Однако, вызов его во второй раз вызывает исключение IllegalStateException.
Я прочитал, что могу инициализировать его на ContentProvider: https://medium.com/@programmerr47 / custom-work- manager-initialization-efdd2afa6459 , но мой объект workerFactory внедрен кинжалом, и я не смог использовать AndroidInjector в Content Provider, поскольку он всегда не инициализировался:
Причина: kotlin. UninitializedPropertyAccessException: свойство lateinit androidInjector не было инициализировано
Я прочитал здесь , что существует интерфейс HasContentProviderInjector
:
, но я не могу найти его в моем Dagger2 версии 2.24 и Я не верю, что это должно работать, потому что, если я правильно понимаю, ContentProvider создается перед объектом Application.
Что мне делать? Попробуйте очистить объектами отражения: sDelegatedInstance != null && sDefaultInstance != null
или что-то еще?