Özel WorkManager Yapılandırması ve Başlatma

Varsayılan olarak, uygulamanız başlatıldığında WorkManager kendini otomatik olarak yapılandırır. Çoğu uygulama için uygun olan makul seçenekleri kullanarak Daha fazla ve zaman çizelgesinin nasıl yönetildiğini kontrol etmek için verileri WorkManager'ı kendiniz başlatın.

İsteğe Bağlı Başlatma

İsteğe bağlı başlatma, WorkManager'ı yalnızca ilgili bileşen gereken işlemler yapılır. Bunu yaptığınızda WorkManager uygulama başlatma performansını iyileştirmeye yardımcı olur. İsteğe bağlı olarak kullanmak için başlatma:

Varsayılan başlatıcıyı kaldır

Kendi yapılandırmanızı sağlamak için önce varsayılan Başlatıcı. Bunu yapmak için AndroidManifest.xml tools:node="remove" birleştirme kuralını uygulayın.

WorkManager 2.6'dan itibaren Uygulama Başlatma kullanılmaktadır. dahili olarak yönetiyoruz. Özel bir başlatıcı sağlamak için şunları yapmanız gerekir: androidx.startup düğümünü kaldırın.

Uygulamanızda Uygulama Başlatma'yı kullanmıyorsanız tamamen kaldırabilirsiniz.

 <!-- If you want to disable android.startup completely. -->
 <provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities="${applicationId}.androidx-startup"
    tools:node="remove">
 </provider>

Aksi takdirde, yalnızca WorkManagerInitializer düğümünü kaldırın.

 <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'ın 2.6'dan daha eski bir sürümünü kullanırken Bunun yerine workmanager-init:

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

Manifest'inizde birleştirme kurallarını kullanma hakkında daha fazla bilgi edinmek için şu dokümanlara bakın: birden fazla manifest dosyasını birleştirme.

Configuration.Provider'ı uygulama

Application sınıfınızın şunu uygulamasını sağlayın: Configuration.Provider ve kendi uygulama metninizi girin Configuration.Provider.getWorkManagerConfiguration. WorkManager'ı kullanmanız gerektiğinde, yöntemini çağırdığınızdan emin olun WorkManager.getInstance(Context). WorkManager, uygulamanızın özel getWorkManagerConfiguration() yöntemini kullanarak Configuration keşfedin. ( WorkManager.initialize kendiniz.)

Aşağıda, özel bir getWorkManagerConfiguration() uygulaması örneği verilmiştir:

Kotlin

class MyApplication() : Application(), Configuration.Provider {
     override fun getWorkManagerConfiguration() =
           Configuration.Builder()
                .setMinimumLoggingLevel(android.util.Log.INFO)
                .build()
}

Java

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'dan önceki özel başlatma

WorkManager'ın 2.1.0 sürümünden önceki sürümleri için iki başlatma seçeneği vardır: seçenekleri vardır. Çoğu durumda varsayılan başlatma tek ihtiyacınız olan şey. WorkManager'ın daha hassas bir şekilde kontrol edilmesi için şunları yapabilirsiniz: kendi yapılandırmanızı belirtin.

Varsayılan başlatma

WorkManager, uygulamanız olduğunda kendini başlatmak için özel bir ContentProvider kullanır başlar. Bu kod dahili sınıfta bulunur androidx.work.impl.WorkManagerInitializer ve varsayılan değeri kullanır Configuration Aşağıdaki durumlarda varsayılan başlatıcı, otomatik olarak kullanılır: bunu açıkça devre dışı bırakabilirsiniz. Varsayılan başlatıcı çoğu uygulama için uygundur.

Özel başlatma

Başlatma işlemini kontrol etmek isterseniz varsayılan başlatıcıyı devre dışı bırakın, ardından kendi özel yapılandırmanızı tanımlayın.

Varsayılan başlatıcı kaldırıldıktan sonra manuel olarak başlatabilirsiniz. WorkManager:

Kotlin

// provide custom configuration
val myConfig = Configuration.Builder()
    .setMinimumLoggingLevel(android.util.Log.INFO)
    .build()

// initialize WorkManager
WorkManager.initialize(this, myConfig)

Java

// provide custom configuration
Configuration myConfig = new Configuration.Builder()
    .setMinimumLoggingLevel(android.util.Log.INFO)
    .build();

//initialize WorkManager
WorkManager.initialize(this, myConfig);

WorkManager singleton, Application.onCreate() veya ContentProvider.onCreate().

Mevcut özelleştirmelerin tam listesi için bkz. Configuration.Builder() referans belgeler.