Sobes.tech
Middle

Ի՞նչ տեսակների WorkRequest գիտեք և ինչ չափանիշներ կարելի է նրանց վրա կիրառել:

sobes.tech AI

Պատասխան AI-ից

Աշխատանքի հայտի տեսակներ:

  • OneTimeWorkRequest: Կատարվում է մեկ անգամ, երբ բավարարում է իր սահմանափակումները:
  • PeriodicWorkRequest: Կատարվում է բազմիցս որոշ ժամանակային միջակայքով:

Սահմանափակումներ (Constraints), որոնք կարող են կիրառվել աշխատանքային հայտի վրա:

  • setRequiredNetworkType(NetworkType networkType): Պահանջվող ցանցի տեսակ (CONNECTED, UNMETERED, NOT_ROAMING, METERED, NOT_REQUIRED):
  • setRequiresCharging(boolean requiresCharging): Պահանջվում է սարքի լիցքավորումը:
  • setRequiresDeviceIdle(boolean requiresDeviceIdle): Պահանջվում է, որ սարքը լինի անգործության վիճակում:
  • setRequiresBatteryNotLow(boolean requiresBatteryNotLow): Պահանջվում է, որ մարտկոցի մակարդակը չլինի ցածր:
  • setRequiresStorageNotLow(boolean requiresStorageNotLow): Պահանջվում է, որ պահեստային տարածքը չլինի սպառված:
  • addContentUriTrigger(Uri uri, boolean triggerContentMaxDelay): Թրիգեր՝ content-ի փոփոխության դեպքում նշված Uri-ով:
  • setTriggerContentUpdateDelay(long duration, TimeUnit unit): Ժամկետ՝ սպասելուց հետո գործարկելու համար փոփոխությունից հետո (OneTimeWorkRequest):
  • setTriggerContentMaxDelay(long duration, TimeUnit unit): Максимальный ժամկետ՝ սպասելուց հետո գործարկելու համար փոփոխությունից հետո (PeriodicWorkRequest):

Օրինակ՝ սահմանափակումներով OneTimeWorkRequest ստեղծելու համար:

// Սահմանափակումներ ստեղծում
val constraints = Constraints.Builder()
    .setRequiredNetworkType(NetworkType.CONNECTED)
    .setRequiresCharging(true)
    .build()

// Սահմանափակումներով OneTimeWorkRequest ստեղծում
val workRequest = OneTimeWorkRequestBuilder<MyWorker>()
    .setConstraints(constraints)
    .build()

Օրինակ՝ սահմանափակումներով PeriodicWorkRequest ստեղծելու համար:

// Սահմանափակումներ ստեղծում
val constraints = Constraints.Builder()
    .setRequiresDeviceIdle(true)
    .build()

// Սահմանափակումներով PeriodicWorkRequest ստեղծում
val periodicWorkRequest = PeriodicWorkRequestBuilder<MyWorker>(15, TimeUnit.MINUTES)
    .setConstraints(constraints)
    .build()