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()