Junior
WorkManager nima?
sobes.tech AI
AIdan javob
WorkManager — bu Android uchun tavsiya etilgan yechim bo‘lib, u kechiktirilgan, kafolatlangan fon ishlarini bajarish uchun mo‘ljallangan, hatto ilova yopilgan yoki qurilma qayta ishga tushirilgan bo‘lsa ham.
U Android Jetpack kutubxonalar to‘plamining bir qismidir va vazifalarni rejalashtirish uchun mos va ishonchli usul taqdim etadi.
Asosiy afzalliklar:
- Kafolatlangan bajarilish: WorkManager ilova majburan to‘xtatilgan yoki qurilma qayta ishga tushirilgan bo‘lsa ham, fon ishini bajarilishini kafolatlaydi.
- Constraints qo‘llab-quvvatlash: Ishni bajarish uchun shartlarni belgilash imkonini beradi (masalan, tarmoq mavjudligi, batareya zaryadlash holati).
- Yagona va davriy vazifalarni qo‘llab-quvvatlash: Bir martalik yoki takrorlanadigan vazifalarni rejalashtirish mumkin.
- Ishni bekor qilish qo‘llab-quvvatlanadi: Rejalashtirilgan ishlarni bekor qilish uchun mexanizmlar taqdim etadi.
- Turli Android versiyalari bilan moslik: Operatsion tizim versiyasiga qarab mos API’larni ishlatadi (JobScheduler, AlarmManager va BroadcastReceiver).
- Murakkab ish grafiklarini qo‘llab-quvvatlash: Bir nechta vazifalarni zanjirlar yoki parallel guruhlarga birlashtirish imkonini beradi.
Asosiy komponentlar:
Worker: bajarilishi kerak bo‘lgan haqiqiy ishni belgilaydi.WorkRequest: ish qanday va qachon bajarilishi kerakligini belgilaydi.OneTimeWorkRequestvaPeriodicWorkRequestmavjud.WorkManager:WorkRequest’larni rejalashtiradi va boshqaradi.
Foydalanish misoli:
// Bir martalik vazifa uchun WorkRequest yaratish
val uploadWorkRequest: WorkRequest =
OneTimeWorkRequestBuilder<MyUploadWorker>()
.build()
// Vazifani rejalashtirish
WorkManager.getInstance(context).enqueue(uploadWorkRequest)
// Worker sinfi misoli
class MyUploadWorker(
appContext: Context,
workerParams: WorkerParameters
) : Worker(appContext, workerParams) {
override fun doWork(): Result {
// Bu yerda og‘ir yoki fon ish bajariladi
return Result.success() // yoki Result.failure(), Result.retry()
}
}