Middle
Hangi WorkRequest türlerini biliyorsun ve bunlara hangi kriterler uygulanabilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
WorkRequest Türleri:
- OneTimeWorkRequest: Koşulları sağlandığında bir kez çalışır.
- PeriodicWorkRequest: Belirli aralıklarla tekrar tekrar çalışır.
WorkRequest'e uygulanabilecek Kısıtlamalar (Constraints):
setRequiredNetworkType(NetworkType networkType): Gerekli ağ türü (CONNECTED, UNMETERED, NOT_ROAMING, METERED, NOT_REQUIRED).setRequiresCharging(boolean requiresCharging): Cihazın şarj edilip edilmediği.setRequiresDeviceIdle(boolean requiresDeviceIdle): Cihazın boşta olup olmadığı.setRequiresBatteryNotLow(boolean requiresBatteryNotLow): Pil seviyesi düşük olmamalı.setRequiresStorageNotLow(boolean requiresStorageNotLow): Depolama alanı dolmamalı.addContentUriTrigger(Uri uri, boolean triggerContentMaxDelay): Belirtilen Uri'de içerik değişikliği tetikleyicisi.setTriggerContentUpdateDelay(long duration, TimeUnit unit): İçerik değişikliğinden sonra başlatmadan önce gecikme (OneTimeWorkRequest için).setTriggerContentMaxDelay(long duration, TimeUnit unit): İçerik değişikliğinden sonra başlatmadan önce maksimum gecikme (PeriodicWorkRequest için).
Kısıtlamalarla OneTimeWorkRequest oluşturma örneği:
// Kısıtlamaları oluştur
val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.setRequiresCharging(true)
.build()
// Kısıtlamalarla OneTimeWorkRequest oluştur
val workRequest = OneTimeWorkRequestBuilder<MyWorker>()
.setConstraints(constraints)
.build()
Kısıtlamalarla PeriodicWorkRequest oluşturma örneği:
// Kısıtlamaları oluştur
val constraints = Constraints.Builder()
.setRequiresDeviceIdle(true)
.build()
// Kısıtlamalarla PeriodicWorkRequest oluştur
val periodicWorkRequest = PeriodicWorkRequestBuilder<MyWorker>(15, TimeUnit.MINUTES)
.setConstraints(constraints)
.build()