По умолчанию WorkManager настраивается автоматически при запуске вашего приложения, используя разумные параметры, подходящие для большинства приложений. Если вам требуется больший контроль над тем, как WorkManager управляет и планирует работу, вы можете настроить конфигурацию WorkManager, инициализировав WorkManager самостоятельно.
Инициализация по требованию
Инициализация по требованию позволяет создавать WorkManager только тогда, когда этот компонент необходим, а не каждый раз при запуске приложения. При этом WorkManager удаляется с критического пути запуска, что повышает производительность запуска приложения. Чтобы использовать инициализацию по требованию:
Удалить инициализатор по умолчанию
 Чтобы предоставить собственную конфигурацию, необходимо сначала удалить инициализатор по умолчанию. Для этого обновите AndroidManifest.xml с помощью tools:node="remove" .
 Начиная с WorkManager 2.6, запуск приложения используется внутри WorkManager. Чтобы предоставить собственный инициализатор, вам необходимо удалить узел androidx.startup .
Если вы не используете функцию запуска приложения в своем приложении, вы можете полностью удалить ее.
 <!-- If you want to disable android.startup completely. -->
 <provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities="${applicationId}.androidx-startup"
    tools:node="remove">
 </provider>
 В противном случае удалите только узел WorkManagerInitializer .
 <provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities="${applicationId}.androidx-startup"
    android:exported="false"
    tools:node="merge">
    <!-- If you are using androidx.startup to initialize other components -->
    <meta-data
        android:name="androidx.work.WorkManagerInitializer"
        android:value="androidx.startup"
        tools:node="remove" />
 </provider>
 При использовании версии WorkManager старше 2.6 вместо этого удалите workmanager-init :
<provider
    android:name="androidx.work.impl.WorkManagerInitializer"
    android:authorities="${applicationId}.workmanager-init"
    tools:node="remove" />
Дополнительные сведения об использовании правил слияния в манифесте см. в документации по объединению нескольких файлов манифеста .
Реализация Configuration.Provider
 Пусть ваш класс Application реализует интерфейс Configuration.Provider и предоставляет собственную реализацию Configuration.Provider.getWorkManagerConfiguration . Если вам нужно использовать WorkManager, обязательно вызовите метод WorkManager.getInstance(Context) . WorkManager вызывает собственный метод getWorkManagerConfiguration() вашего приложения, чтобы узнать его Configuration . (Вам не нужно самостоятельно вызывать WorkManager.initialize .)
 Вот пример пользовательской реализации getWorkManagerConfiguration() : 
Котлин
class MyApplication() : Application(), Configuration.Provider { override fun getWorkManagerConfiguration() = Configuration.Builder() .setMinimumLoggingLevel(android.util.Log.INFO) .build() }
Ява
class MyApplication extends Application implements Configuration.Provider { @Override public Configuration getWorkManagerConfiguration() { return new Configuration.Builder() .setMinimumLoggingLevel(android.util.Log.INFO) .build(); } }
Пользовательская инициализация до WorkManager 2.1.0
Для версий WorkManager до версии 2.1.0 существует два варианта инициализации. В большинстве случаев инициализация по умолчанию — это все, что вам нужно. Для более точного управления WorkManager вы можете указать собственную конфигурацию .
Инициализация по умолчанию
 WorkManager использует собственный ContentProvider для своей инициализации при запуске приложения. Этот код находится во внутреннем классе androidx.work.impl.WorkManagerInitializer и использует Configuration по умолчанию. Инициализатор по умолчанию используется автоматически, если вы явно не отключите его . Инициализатор по умолчанию подходит для большинства приложений.
Пользовательская инициализация
Если вы хотите контролировать процесс инициализации, вам необходимо отключить инициализатор по умолчанию , а затем определить свою собственную конфигурацию.
После удаления инициализатора по умолчанию вы можете инициализировать WorkManager вручную:
Котлин
// provide custom configuration val myConfig = Configuration.Builder() .setMinimumLoggingLevel(android.util.Log.INFO) .build() // initialize WorkManager WorkManager.initialize(this, myConfig)
Ява
// provide custom configuration Configuration myConfig = new Configuration.Builder() .setMinimumLoggingLevel(android.util.Log.INFO) .build(); //initialize WorkManager WorkManager.initialize(this, myConfig);
 Убедитесь, что инициализация синглтона WorkManager выполняется либо в Application.onCreate() , либо в ContentProvider.onCreate() .
 Полный список доступных настроек см. в справочной документации Configuration.Builder() .