Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

맞춤 WorkManager 구성 및 초기화

기본적으로 WorkManager는 앱이 시작될 때 대부분의 앱에 적합한 합리적인 옵션을 사용하여 자동으로 구성됩니다. WorkManager가 작업을 관리하고 예약하는 방법을 더 제어해야 하는 경우 WorkManager를 직접 초기화하여 WorkManager 구성을 맞춤설정할 수 있습니다.

WorkManager 2.1.0 이상

WorkManager 2.1.0에서는 여러 가지 방법으로 WorkManager를 구성할 수 있습니다. WorkManager에 맞춤 초기화를 제공하는 가장 유연한 방법은 WorkManager 2.1.0 이상에서 사용 가능한 주문형 초기화를 사용하는 것입니다. 다른 옵션은 나중에 설명합니다.

주문형 초기화

주문형 초기화를 사용하면 앱이 시작할 때마다가 아니라 구성요소가 필요할 때만 WorkManager를 만들 수 있습니다. 이렇게 하면 WorkManager가 중요한 시작 경로에서 제외되어 앱 시작 성능이 향상됩니다. 주문형 초기화를 사용하려면 다음을 실행하세요.

기본 초기화 프로그램 삭제

자체 구성을 제공하려면 먼저 기본 초기화 프로그램을 삭제해야 합니다. 그렇게 하려면 병합 규칙 tools:node="remove"를 사용하여 AndroidManifest.xml을 업데이트하세요.

<provider
        android:name="androidx.work.impl.WorkManagerInitializer"
        android:authorities="${applicationId}.workmanager-init"
        tools:node="remove" />
    

manifest에서 병합 규칙을 사용하는 방법에 관해 자세히 알아보려면 여러 manifest 파일의 병합에 관한 문서를 참조하세요.

Configuration.Provider 구현

Configuration.Provider.getWorkManagerConfiguration() 자체 구현을 제공하여 Application 클래스에서 Configuration.Provider 인터페이스를 구현하도록 합니다.

WorkManager를 사용해야 한다면 WorkManager.getInstance(Context) 메서드를 호출합니다. WorkManager에서 Configuration을 찾기 위해 앱의 맞춤 getWorkManagerConfiguration() 메서드를 호출합니다. (직접 WorkManager.initialize()를 호출할 필요는 없습니다.)

다음은 맞춤 getWorkManagerConfiguration() 구현의 예입니다.

Kotlin

    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 Configuration.Builder()
                    .setMinimumLoggingLevel(android.util.Log.INFO)
                    .build();
        }
    }
    

WorkManager 2.0.1 이전

이전 버전의 WorkManager에는 두 가지 초기화 옵션이 있습니다.

기본 초기화
대부분의 경우 기본 초기화만 사용하면 됩니다.
맞춤 초기화
WorkManager를 더 정밀하게 제어하려면 자체 구성을 지정하세요.

기본 초기화

WorkManager는 앱이 시작할 때 맞춤 ContentProvider를 사용하여 자신을 초기화합니다. 이 코드는 내부 클래스 androidx.work.impl.WorkManagerInitializer에 있으며, 기본 Configuration을 사용합니다. 명시적으로 사용을 중지하지 않는 한 자동으로 기본 초기화 프로그램이 사용됩니다. 기본 초기화 프로그램은 대부분의 앱에 적합합니다.

맞춤 초기화

초기화 프로세스를 제어하려면 기본 초기화 프로그램을 사용 중지한 다음 자체 맞춤 구성을 정의해야 합니다.

기본 초기화 프로그램이 삭제된 후 WorkManager를 수동으로 초기화할 수 있습니다.

Kotlin

    // 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() 참조 문서를 확인하세요.