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.