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

Varsayılan olarak WorkManager, uygulamanız başlatıldığında çoğu uygulamaya uygun olan makul seçenekleri kullanarak kendini otomatik olarak yapılandırır. WorkManager'ın yönetim ve planlama süreçleri üzerinde daha fazla kontrole ihtiyacınız varsa WorkManager'ı kendiniz başlatarak WorkManager yapılandırmasını özelleştirebilirsiniz.

İsteğe Bağlı Başlatma

İsteğe bağlı başlatma, uygulama her başlatıldığında değil, yalnızca söz konusu bileşene ihtiyaç duyulduğunda WorkManager oluşturmanıza olanak tanır. Böylece WorkManager'ı kritik başlangıç yolunuzun dışına taşıyarak uygulama başlatma performansını iyileştirebilirsiniz. İsteğe bağlı başlatma özelliğini kullanmak için:

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

Kendi yapılandırmanızı sağlamak için önce varsayılan başlatıcıyı kaldırmanız gerekir. Bunu yapmak için tools:node="remove" birleştirme kuralını kullanarak AndroidManifest.xml güncellemesi yapın.

WorkManager 2.6'dan bu yana, WorkManager içinde dahili olarak Uygulama Başlatma kullanılmaktadır. Özel başlatıcı sağlamak için androidx.startup düğümünü kaldırmanız gerekir.

Uygulamanızda Uygulama Başlatma 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 uygulamasını kaldırın:

<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 birden fazla manifest dosyasını birleştirme hakkındaki dokümanlara bakın.

Configuration.Provider'ı uygulama

Application sınıfınızdan Configuration.Provider arayüzünü uygulamasını ve kendi Configuration.Provider.getWorkManagerConfiguration uygulamanızı sunmasını sağlayın. WorkManager'ı kullanmanız gerektiğinde, WorkManager.getInstance(Context) yöntemini çağırdığınızdan emin olun. WorkManager, Configuration uygulamasını keşfetmek için uygulamanızın özel getWorkManagerConfiguration() yöntemini çağırır. (WorkManager.initialize numaralı telefonu kendiniz çağırmanız gerekmez.)

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ümlerinde iki başlatma seçeneği bulunur. Çoğu durumda tek ihtiyacınız olan varsayılan başlatmadır. WorkManager'ı daha hassas bir şekilde kontrol etmek için kendi yapılandırmanızı belirtebilirsiniz.

Varsayılan başlatma

WorkManager, uygulamanız başlatıldığında kendini başlatmak için özel bir ContentProvider kullanır. Bu kod dahili androidx.work.impl.WorkManagerInitializer sınıfında bulunur ve varsayılan Configuration değerini kullanır. Açıkça devre dışı bırakmadığınız sürece varsayılan başlatıcı otomatik olarak kullanılır. 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ırakmanız ve ardından kendi özel yapılandırmanızı tanımlamanız gerekir.

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

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 single'ının başlatılmasının Application.onCreate() içinde veya ContentProvider.onCreate() içinde çalıştığından emin olun.

Mevcut özelleştirmelerin tam listesi için Configuration.Builder() referans belgelerine bakın.