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.