Sobes.tech
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()