Sobes.tech
Middle

Qaysi WorkRequest turlarini bilasiz va ularga qanday mezonlar qo'llanilishi mumkin?

sobes.tech AI

AIdan javob

WorkRequest turlari:

  • OneTimeWorkRequest: Bir marta bajariladi, uning cheklovlari bajarilganda.
  • PeriodicWorkRequest: Belgilangan vaqt oralig'ida takrorlanadi.

WorkRequest ga qo'llanilishi mumkin bo'lgan shartlar (Constraints):

  • setRequiredNetworkType(NetworkType networkType): Talab qilinadigan tarmoq turi (CONNECTED, UNMETERED, NOT_ROAMING, METERED, NOT_REQUIRED).
  • setRequiresCharging(boolean requiresCharging): Qurilma zaryadlangan bo'lishi kerakmi.
  • setRequiresDeviceIdle(boolean requiresDeviceIdle): Qurilma bo'sh vaqtda bo'lishi kerakmi.
  • setRequiresBatteryNotLow(boolean requiresBatteryNotLow): Batareya darajasi past bo'lmasligi kerakmi.
  • setRequiresStorageNotLow(boolean requiresStorageNotLow): Xotira to'liq bo'lmasligi kerakmi.
  • addContentUriTrigger(Uri uri, boolean triggerContentMaxDelay): Ko'rsatilgan Uri bo'yicha kontent o'zgarishi triggeri.
  • setTriggerContentUpdateDelay(long duration, TimeUnit unit): Kontent o'zgarishidan keyin boshlashdan oldin kechikish (OneTimeWorkRequest uchun).
  • setTriggerContentMaxDelay(long duration, TimeUnit unit): Kontent o'zgarishidan keyin boshlashdan oldin maksimal kechikish (PeriodicWorkRequest uchun).

Cheklovlar bilan OneTimeWorkRequest yaratish misoli:

// Cheklovlarni yaratamiz
val constraints = Constraints.Builder()
    .setRequiredNetworkType(NetworkType.CONNECTED)
    .setRequiresCharging(true)
    .build()

// Cheklovlar bilan OneTimeWorkRequest yaratamiz
val workRequest = OneTimeWorkRequestBuilder<MyWorker>()
    .setConstraints(constraints)
    .build()

Cheklovlar bilan PeriodicWorkRequest yaratish misoli:

// Cheklovlarni yaratamiz
val constraints = Constraints.Builder()
    .setRequiresDeviceIdle(true)
    .build()

// Cheklovlar bilan PeriodicWorkRequest yaratamiz
val periodicWorkRequest = PeriodicWorkRequestBuilder<MyWorker>(15, TimeUnit.MINUTES)
    .setConstraints(constraints)
    .build()