Junior
WorkManager чист?
sobes.tech AI
Ҷавоб аз AI
WorkManager — ин ҳалли тавсия дода мешавад дар Android барои иҷрои дертаргарондаи корҳои кафолатноки дарунӣ, ки бояд ҳатман иҷро шаванд, ҳатто агар барнома баста ё дастгоҳ бозоғоз шавад.
Ин қисми маҷмӯи китобхонаҳои Android Jetpack аст ва роҳи чандир ва боэътимод барои нақшакашии вазифаҳоро пешниҳод мекунад.
Афзалиятҳои асосӣ:
- Иҷрои кафолатнок: WorkManager иҷрои корро дар дохили система кафолат медиҳад, ҳатто агар барнома маҷбурӣ боздошта шавад ё дастгоҳ бозоғоз шавад.
- Дастгирии constraints: Имкон медиҳад шартҳоро барои иҷрои кор муайян кардан (масалан, дастрасии шабака, ҳолати батарея).
- Дастгирии вазифаҳои ягона ва даврӣ: Мумкин аст вазифаҳоро ё якдафъаина ё такроршаванда нақшакашӣ кард.
- Дастгирии бекор кардани кор: Механизмҳоро барои бекор кардани корҳои нақшакашӣ пешниҳод мекунад.
- Масофат бо версияҳои гуногуни Android: API-ҳои мувофиқро вобаста ба версияи системаи амалӣ истифода мебарад (JobScheduler, AlarmManager ва BroadcastReceiver).
- Дастгирии графҳои кории мураккаб: Имкон медиҳад чанд вазифаро дар занҷирҳо ё гурӯҳҳои параллелӣ муттаҳид кардан.
Компонентҳои асосӣ:
Worker: Корро, ки бояд иҷро шавад, муайян мекунад.WorkRequest: Чӣ гуна ва кай бояд кор иҷро шавад, муайян мекунад.OneTimeWorkRequestваPeriodicWorkRequestмавҷуданд.WorkManager: нақшакашӣ ва идоракунииWorkRequest.
Маслиҳат барои истифода:
// Эҷоди WorkRequest барои вазифаи якдафъаина
val uploadWorkRequest: WorkRequest =
OneTimeWorkRequestBuilder<MyUploadWorker>()
.build()
// Нақшакашии вазифа
WorkManager.getInstance(context).enqueue(uploadWorkRequest)
// Мисоли синфи Worker
class MyUploadWorker(
appContext: Context,
workerParams: WorkerParameters
) : Worker(appContext, workerParams) {
override fun doWork(): Result {
// Ин ҷо кори вазнин ё дарунӣ иҷро мешавад
return Result.success() // ё Result.failure(), Result.retry()
}
}